Mengubah baris menjadi kolom
Dalam pelajaran ini, Anda mempelajari bahwa PIVOT mengubah nilai unik dari satu kolom menjadi beberapa kolom.
Saat menganalisis data paper_shop_monthly_sales, Anda menyadari struktur tabel ini tidak sesuai untuk laporan yang ingin Anda buat.
Anda ingin menghasilkan laporan dengan tampilan seperti ini:
|year_of_sale|notebooks|pencils|crayons|
|------------|---------|-------|-------|
| 2018 | 150 | 150 | 80 |
| 2019 | 230 | 130 | 170 |
Dengan kata lain, Anda ingin mengubah data yang ada di baris menjadi data dalam kolom, serta menjumlahkan unit untuk setiap tahun.
Seperti yang Anda pelajari dari latihan sebelumnya, nama produk dan unit harus dipisahkan. Ini dilakukan di subselect, silakan perhatikan.
Latihan ini merupakan bagian dari kursus
Membersihkan Data di Basis Data SQL Server
Instruksi latihan
- Pilih kolom hasil pivot untuk setiap produk.
- Sertakan penjumlahan unit di dalam operator
PIVOT. - Setelah pernyataan
FOR, sertakan nama kolom yang berisi nilai yang akan menjadi header kolom. - Beri nama
paper_shop_pivotuntuk operatorPIVOT.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
SELECT
year_of_sale,
-- Select the pivoted columns
___,
___,
___
FROM
(SELECT
SUBSTRING(product_name_units, 1, charindex('-', product_name_units)-1) product_name,
CAST(SUBSTRING(product_name_units, charindex('-', product_name_units)+1, len(product_name_units)) AS INT) units,
year_of_sale
FROM paper_shop_monthly_sales) sales
-- Sum the units for column that contains the values that will be column headers
PIVOT (SUM(___) FOR ___ IN (notebooks, pencils, crayons))
-- Give the alias name
AS ___