Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle sql untuk menghitung instance dari nilai yang berbeda dalam satu kolom

Jika Anda menggunakan Oracle 11g, maka Anda dapat menggunakan PIVOT fungsi:

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;

Lihat SQL Fiddle dengan Demo

Jika Anda tidak menggunakan Oracle11g, maka Anda dapat menggunakan fungsi agregat dengan CASE pernyataan:

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

Lihat SQL Fiddle dengan Demo



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Penasihat Kompresi 11gR2 =Jahat

  2. Sesi tidak aktif di Oracle oleh JDBC

  3. Oracle UTL_SMTP:Kirim Email dengan Contoh Lampiran Menggunakan Otentikasi Oracle Wallet

  4. Oracle GROUP_CONCAT() Setara

  5. Cara Menginstal Oracle di Mac