sql count group-by

SQL: cuente las ocurrencias de valores



sql group by sum (2)

Si está trabajando en un Oracle, usaría la función PIVOT:

SELECT * FROM fruit t PIVOT (COUNT(fruit) AS cnt FOR(fruit) IN (''apple'' AS apple , ''pear'' AS pear) );

Más detalles y muestras completas en PIVOT / UNPIVOT que encontrarás en la web (aquí https://oracle-base.com/articles/11g/pivot-and-unpivot-operators-11gr1 )

Dejar

user | fruit ------------ 1 | apple 1 | apple 1 | apple 2 | apple 2 | apple 1 | pear

Intentando combinar count y group by para obtener

user | apples | pears --------------------- 1 | 3 | 1 2 | 2 | 0

Cualquier sugerencia sobre cómo proceder es apreciada.


Use expresiones de case para hacer un conteo condicional:

select user, count(case when fruit = ''apple'' then 1 end) as apples, count(case when fruit = ''pear'' then 1 end) as pears from tablename group by user