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

Menggunakan pivot pada beberapa kolom dari baris Oracle

Seperti yang ditunjukkan dokumentasi, Anda dapat memiliki beberapa klausa fungsi agregat. Jadi Anda bisa melakukan ini:

select * from (
  select * from tab1
)
pivot (
  count(type) as ct, sum(weight) as wt, sum(height) as ht
  for type in ('A' as A, 'B' as B, 'C' as C)
);

A_CT A_WT A_HT B_CT B_WT B_HT C_CT C_WT C_HT
---- ---- ---- ---- ---- ---- ---- ---- ----
   2  110   22    1   40    8    1   30   15 

Jika Anda ingin kolom dalam urutan yang Anda tunjukkan, tambahkan level subquery lain:

select a_ct, b_ct, c_ct, a_wt, b_wt, c_wt, a_ht, b_ht, c_ht
from (
  select * from (
    select * from tab1
  )
  pivot (
    count(type) as ct, sum(weight) as wt, sum(height) as ht
    for type in ('A' as A, 'B' as B, 'C' as C)
  )
);

A_CT B_CT C_CT A_WT B_WT C_WT A_HT B_HT C_HT
---- ---- ---- ---- ---- ---- ---- ---- ----
   2    1    1  110   40   30   22    8   15 

SQL Fiddle.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. UPPER() Fungsi di Oracle

  2. Bagaimana menangani detik kabisat di Oracle

  3. Bagaimana cara menjatuhkan tabel di oracle

  4. Mengapa urutan sortir varchar Oracle tidak cocok dengan perilaku perbandingan varchar?

  5. Oracle SQL - REGEXP_LIKE berisi karakter selain a-z atau A-Z