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

Oracle SQL - Pivot baris tabel ke kolom dan gunakan sub kueri di pivot

Cukup gunakan agregasi bersyarat:

SELECT COALESCE(customer, 'Grand Total') as customer,
       SUM(CASE WHEN Hotel = 'Royal Palms' THEN 1 ELSE 0 END) as "Royal Palms",
       SUM(CASE WHEN Hotel = 'Beverly Hills' THEN 1 ELSE 0 END) as "Beverly Hills",       
       SUM(CASE WHEN Hotel = 'Ritz-Carlton' THEN 1 ELSE 0 END) as "Ritz-Carlton" ,
       COUNT(*) as "Grand Total",
       COUNT(Booked_Status) as "Num Booked"
FROM CUST_HOTEL_VIEW
GROUP BY ROLLUP(CUSTOMER)
ORDER BY CUSTOMER;

Agregasi bersyarat jauh lebih fleksibel daripada pivot . Secara pribadi, saya tidak melihat alasan untuk pivot sintaks:ia melakukan satu hal dengan baik, tetapi bukan merupakan blok bangunan seperti pernyataan SQL tradisional.

ROLLUP() juga cukup membantu. Anda juga dapat menggunakan:

GROUP BY GROUPING SETS ( (CUSTOMER), () )


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara memilih semua kolom, dan hitungan (*) dalam kueri yang sama

  2. Oracle SQL-Loader menangani Kutipan Ganda internal secara efisien dalam nilai

  3. masalah dengan sintaks sql

  4. Panggil kueri Oracle berparameter dari ADODB di Classic ASP

  5. Menghubungkan Oracle 21c ke SQL Server