Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle SQL Query pour résumer les statistiques, à l'aide de GROUP BY

select batch 
,      count(case when status=1 then 1 end) status1
,      count(case when status=2 then 1 end) status2
,      count(case when status=3 then 1 end) status3
from   table
group by batch;

Ceci est souvent appelé une requête "pivot", et j'ai écrit un article sur la façon de générer dynamiquement ces requêtes sur mon blog .

Version utilisant DECODE (spécifique à Oracle mais moins verbeux) :

select batch 
,      count(decode(status,1,1)) status1
,      count(decode(status,2,1)) status2
,      count(decode(status,3,1)) status3
from   table
group by batch;