केवल सशर्त एकत्रीकरण का उपयोग करें:
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;
सशर्त एकत्रीकरण pivot
. से कहीं अधिक लचीला है . व्यक्तिगत रूप से, मुझे pivot
. का कोई कारण नहीं दिखता वाक्य रचना:यह एक काम अच्छी तरह से करता है, लेकिन एक बिल्डिंग ब्लॉक नहीं है जिस तरह से परंपरा एसक्यूएल स्टेटमेंट हैं।
ROLLUP()
भी काफी मददगार है। आप इसका भी उपयोग कर सकते हैं:
GROUP BY GROUPING SETS ( (CUSTOMER), () )