Try this query:
SELECT
SUM(CASE WHEN Status = 'pending' THEN Amount ELSE 0 END) AS Pending
,SUM(CASE WHEN Status = 'Success' THEN Amount ELSE 0 END) AS Success
,SUM(CASE WHEN Status = 'Failure' THEN Amount ELSE 0 END) AS Failure
FROM MyTable
You can also use this dynamic query:
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'SUM(CASE WHEN `Status` = ''',
`Status`,
''' THEN Amount ELSE 0 END) AS `',
`Status`, '`'
)
) INTO @sql
FROM MyTable;
SET @sql = CONCAT('SELECT ', @sql,'
FROM MyTable
');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;