sql >> Databáze >  >> RDS >> Oracle

Oracle sql pro počítání instancí různých hodnot v jednom sloupci

Pokud používáte Oracle 11g, můžete použít PIVOT funkce:

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;

Viz SQL Fiddle with Demo

Pokud nepoužíváte Oracle11g, můžete použít agregační funkci s CASE prohlášení:

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

Viz SQL Fiddle with Demo



  1. Povolit databázovou poštu na serveru SQL Server (T-SQL)

  2. Vícenásobné použití stejného sloupce v klauzuli WHERE

  3. Porozumění analyzátoru pracovní zátěže k mapování překážek výkonu

  4. Úvod do pomalu se měnících rozměrů (SCD)