Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle sql do zliczania wystąpień różnych wartości w jednej kolumnie

Jeśli używasz Oracle 11g, możesz użyć PIVOT funkcja:

select *
from
(
  select tkey, status, 
    status as col
  from tableB b
  left join tableA a
    on a.fkey = b.fkey
) src
pivot
(
  count(status)
  for col in ('20' as Count_Status20, 
              '30' as Count_Status30,
              '40' as Count_Status40)
) piv;

Zobacz SQL Fiddle z demonstracją

Jeśli nie używasz Oracle11g, możesz użyć funkcji agregującej z CASE oświadczenie:

select tkey, 
  count(case when status = 20 then 1 else null end) as Count_Status20,
  count(case when status = 30 then 1 else null end) as Count_Status30,
  count(case when status = 40 then 1 else null end) as Count_Status40
from tableB b
left join tableA a
  on b.fkey = a.fkey
group by tkey

Zobacz SQL Fiddle z demonstracją



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można zalogować się do bazy danych jako SYS za pomocą Oracle SQL Developer

  2. Nagrody Oracle Database Developer Choice Awards

  3. Instalowanie Oracle 12c Standard Edition w systemie Windows 10 Professional

  4. Wybierz losową próbkę wyników z wyniku zapytania

  5. Duże wykorzystanie przestrzeni z crfclust.bdb