Satırları Sütunlara Dönüştürme
Coddy'nin SQL Journey'sinin Temellerin Ötesi bölümünün bir parçası — ders 14 / 27.
Satırları sütunlara dönüştürmek için koşullu toplamayı GROUP BY ile birleştirin. Bu, bir hesap tablosu pivotunun SQL versiyonudur.
sales tablosunun (month, product, units) gibi satırlara sahip olduğunu farz edelim. Her ürün için bir sütun ve her ay için bir satır görmek için:
SELECT
month,
SUM(CASE WHEN product = 'A' THEN units ELSE 0 END) AS product_a,
SUM(CASE WHEN product = 'B' THEN units ELSE 0 END) AS product_b
FROM sales
GROUP BY monthHer bir SUM(CASE …) ifadesinin gördüğü GROUP BY grubu bir aya ait satırlardır; CASE ise tek bir ürün için olan dilimi seçer.
Görev
KolayMevcut tablolar ve sütunlar:
<strong>sales</strong>:<strong>month</strong>,<strong>product</strong>,<strong>units</strong>
Verileri, her satır bir month olacak şekilde şu sütunlarla pivot yapın:
monthapples: o aydaki'apples'ürünü için toplamunitsbananas:'bananas'için aynısıcherries:'cherries'için aynısıtotal: o aydaki tüm ürünlerin toplamunitsmiktarı
Yalnızca total değeri en az 20 olan ayları döndürün. month sütununa göre sıralayın.
Kopya kağıdı
Satırları sütunlara dönüştürmek için GROUP BY ile koşullu toplama kullanın:
SELECT
month,
SUM(CASE WHEN product = 'A' THEN units ELSE 0 END) AS product_a,
SUM(CASE WHEN product = 'B' THEN units ELSE 0 END) AS product_b,
SUM(units) AS total
FROM sales
GROUP BY month
HAVING SUM(units) >= threshold
ORDER BY monthHer bir SUM(CASE …), her bir GROUP BY grubu içinde yalnızca o ürünle eşleşen satırları toplar.
Kendin dene
SELECT month,
-- ürün başına bir SUM(CASE ...), artı toplam
FROM sales
GROUP BY month
-- toplam >= 20 olan ayları filtrele
ORDER BY month
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temellerin Ötesi bölümündeki tüm dersler
2String Fonksiyonları
LENGTH, UPPER, LOWERSUBSTRINSTRREPLACE ve TRIM|| ile BirleştirmeÖzet - Faturalar