Spora göre BKİ aralığı
BKİ'nin her yaz sporunda nasıl değiştiğini anlamak istiyorsun. Bunun için aşağıdakileri içeren bir rapor hazırla:
- sport, yaz sporunun adı
- bmi_bucket, BKİ'yi üç gruba ayırır:
<.25,.25-.30,>.30 - athletes, benzersiz sporcu sayısı
Tanım: BKİ = 100 * weight / (height squared).
Ayrıca, CASE ifadelerinin satır satır çalıştığını unutma; bu nedenle ikinci koşul sadece ilk koşul yanlışsa uygulanır. Böylece, daha önce ele alınan koşulları hariç tutmak için bir AND ifadesine ihtiyacın olmaz.
ER Diyagramı'na bakmaktan çekinme.
Bu egzersiz
SQL ile Raporlama
kursunun bir parçasıdırEgzersiz talimatları
sport,bmi_bucketveathletesgöstermek içinsummer_gamesveathletestablolarından veri çeken bir sorgu yaz.ANDveyaELSEkullanmadan,bmi_bucketalanını üç gruba ayıran birCASEifadesi kur:'<.25','.25-.30've'>.30'.- Toplanmayan alanlara göre GROUP BY yap.
- Raporu önce sport'a, sonra da sporcu sayısına göre azalan sırada sırala.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
-- Pull in sport, bmi_bucket, and athletes
SELECT
____,
-- Bucket BMI in three groups: <.25, .25-.30, and >.30
CASE WHEN ____ THEN '<.25'
WHEN ____ THEN '.25-.30'
WHEN ____ THEN '>.30' END AS bmi_bucket,
____ AS athletes
FROM ____ AS s
JOIN ____ AS a
ON ____
-- GROUP BY non-aggregated fields
GROUP BY ____
-- Sort by sport and then by athletes in descending order
ORDER BY ____;