sql >> Base de Datos >  >> RDS >> Mysql

Contando filas totales y agrupando por una columna en mysql

Primero necesita agrupar por para obtener las columnas calculadas

 SELECT Customer, COUNT(*) as total_count, SUM(duration) as total_duration
 FROM yourTable
 GROUP BY  Customer

y

 SELECT Customer, Error, COUNT(*) as error_count
 FROM yourTable
 GROUP BY  Customer, Error

Luego vuelve a unirte a tu mesa

SELECT t1.Customer, 
       t2.total_count, 
       t1.error, 
       t3.error_count, 
       t2.total_duration
FROM yourTable as t1
JOIN (
     SELECT Customer, COUNT(*) as total_count, SUM(duration) as total_duration
     FROM yourTable
     GROUP BY  Customer
     ) as t2
  ON t1.Customer = t2.Customer
JOIN (
     SELECT Customer, Error, COUNT(*) as error_count
     FROM yourTable
     GROUP BY  Customer, Error
) as t3
 ON t1.Customer = t3.Customer
AND t1.Error = t3.Error
GROUP BY t1.Customer
       , t1.Error