sql >> Database >  >> RDS >> Oracle

Oracle SQL-query om statistieken samen te vatten, met behulp van 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;

Dit wordt vaak een "pivot"-query genoemd en ik heb een artikel geschreven over het dynamisch genereren van deze query's op mijn blog .

Versie met DECODE (Oracle-specifiek maar minder uitgebreid):

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;


  1. Hoe twee kolommen aan dezelfde tabel te koppelen

  2. Hoe verwijder ik alle niet-alfabetische tekens uit de tekenreeks in SQL Server?

  3. Een lijst<> invoegen in de SQL Server-tabel

  4. MySQL SELECT MIN voor altijd, maar keer alleen terug als TUSSEN datums