การ Pivot พร้อม Ranking
เป้าหมายคือสร้างตารางที่อ่านง่าย แสดงการจัดอันดับของ 3 ประเทศที่มีประชากรมากที่สุดในสหภาพยุโรป โดยอิงจากจำนวนเหรียญทองที่ได้รับในโอลิมปิกระหว่างปี 2004 ถึง 2012 ตารางต้องอยู่ในรูปแบบนี้:
| Country | 2004 | 2008 | 2012 |
|---------|------|------|------|
| FRA | ... | ... | ... |
| GBR | ... | ... | ... |
| GER | ... | ... | ... |
ต้องนับจำนวนเหรียญทองของแต่ละประเทศ จัดอันดับตามจำนวนเหรียญ แล้วจึง pivot ตารางให้ได้รูปแบบดังกล่าว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
PostgreSQL Summary Stats and Window Functions
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Count the gold medals per country and year
SELECT
___,
___,
___ AS Awards
FROM Summer_Medals
WHERE
Country IN ('FRA', 'GBR', 'GER')
AND Year IN (2004, 2008, 2012)
AND Medal = 'Gold'
GROUP BY ___, ___
ORDER BY Country ASC, Year ASC