Mengubah Baris menjadi Kolom
Termasuk bagian Lebih dari Dasar-Dasar dalam perjalanan SQL di Coddy. Pelajaran 14 dari 27.
Gabungkan agregasi bersyarat dengan GROUP BY untuk mengubah baris menjadi kolom. Ini adalah versi SQL dari pivot spreadsheet.
Misalkan sales memiliki baris seperti (month, product, units). Untuk melihat satu baris per bulan dengan satu kolom per produk:
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 monthKelompok yang dilihat setiap GROUP BY SUM(CASE …) adalah baris-baris untuk satu bulan; CASE memilih bagian untuk satu produk.
Tantangan
MudahTabel dan kolom yang tersedia:
sales:month,product,units
Ubah data agar setiap baris mewakili satu month dengan kolom berikut:
monthapples: totalunitsuntuk produk'apples'pada bulan tersebutbananas: sama untuk'bananas'cherries: sama untuk'cherries'total: totalunitsdari semua produk pada bulan tersebut
Kembalikan hanya bulan yang memiliki total minimal 20. Urutkan berdasarkan month.
Coba sendiri
SELECT month,
-- satu SUM(CASE ...) untuk setiap produk, ditambah total
FROM sales
GROUP BY month
-- filter bulan dengan total >= 20
ORDER BY month
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Lebih dari Dasar-Dasar
3Agregasi dengan Kondisi
COUNT dengan CASESUM dengan CASEMengubah Baris menjadi KolomRangkuman: Sumber TrafikLatihan sendiri: Playground SQL