mysql - todos - sumar valores de una columna sql
Sumar columna con condiciĆ³n y mostrar en fila (1)
Prueba esta consulta:
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
También puedes usar esta consulta dinámica:
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;
Ver este SQLFiddle
Me gustaría resumir una columna con varias condiciones y mostrar todo el resultado en filas
Tengo una mesa como
Status Amount
pending 100
Success 50
pending 20
failure 80
success 20
Ahora me gustaría encontrar el total de pendientes, éxito y fracaso como
Pending Success failure
120 70 80
algo como
select sum(pending), sum(success), sum(failure) from mytable