SQL Pivot - Ketahui cara mengonversi baris menjadi kolom



Artikel tentang SQL Pivot ini adalah panduan komprehensif tentang cara mengonversi data tingkat baris menjadi data kolom dengan contoh yang mendalam.

Relasional menyimpan data dalam jumlah besar dalam bentuk tabel. Tabel ini dapat memiliki sejumlah baris dan kolom. Tetapi, bagaimana jika Anda harus mengubah data tingkat baris menjadi data kolom? Nah, dalam artikel ini di SQL Pivot, saya akan menunjukkan kepada Anda bagaimana Anda dapat mengonversi baris ke kolom di SQL Server.

Topik berikut akan dibahas dalam artikel ini:





Apa PIVOT di SQL?

PIVOT digunakan untuk memutar nilai tabel dengan mengubah nilai unik dari satu kolom menjadi beberapa kolom. Ini digunakan untuk memutar baris ke nilai kolom dan menjalankan agregasi saat diperlukan pada nilai kolom yang tersisa.

UNPIVOT, sebaliknya, digunakan untuk melakukan operasi yang berlawanan. Jadi, ini digunakan untuk mengubah kolom dari tabel tertentu menjadi nilai kolom.



Lanjut ke artikel ini, mari kita pahami sintaks SQL Pivot.

Sintaksis:

PILIH Nama Kolom Tidak Berputar, [Nama Kolom Berputar Pertama] sebagai Nama Kolom, [Nama Kolom Berputar Kedua] sebagai Nama Kolom, [Nama Kolom Berputar Ketiga] sebagai Nama Kolom, ... [Nama Kolom Putar Terakhir] sebagai Nama Kolom DARI (kueri SELECT yang menghasilkan data) AS [alias untuk kueri awal] PIVOT ([AggregationFunction] (ColumName) FOR [ColumnName dari kolom yang nilainya akan menjadi tajuk kolom] IN ([First Pivoted ColumnName], [Second Pivoted ColumnName], [Third Pivoted ColumnName] ... [last kolom berputar])) AS [alias untuk Tabel Pivot]

Sini,Anda juga bisa menggunakan ORDER BY klausa untuk mengurutkan nilai dalam urutan naik atau turun. Sekarang setelah Anda mengetahui apa itu PIVOT dalam SQL dan sintaks dasarnya, mari kita lanjutkan dan lihat cara menggunakannya.

Contoh

Untuk pemahaman Anda yang lebih baik, saya akan mempertimbangkan tabel berikut untuk menjelaskan semua contoh.



Tabel Pemasok:

SupplierID DaysofManufacture Biaya ID Pelanggan PurchaseID
satu121230sebelasP1
2dua puluh satu154322P2
3322. 3. 4. 5sebelasP3
414876522P1
542345233P3
631543133P1
7412342sebelasP2
854365422P2
9331234sebelasP3
1056683233P2

Mari kita tulis kueri sederhana untuk mengambil biaya rata-rata yang dihabiskan oleh setiap pelanggan.

PILIH ID Pelanggan, AVG (Biaya) SEBAGAI Biaya Rata-Rata Pelanggan DARI KELOMPOK Pemasok MENURUT ID Pelanggan

Keluaran:

ID Pelanggan AverageCostofCustomer
sebelas1787.75
224654
335238.33

Sekarang, misalkan kita ingin melakukan pivot pada tabel di atas. Di sini, nilai kolom ID Pelanggan akan menjadi tajuk kolom.

- Buat tabel Pivot dengan satu baris dan tiga kolom PILIH 'AverageCostofCustomer' AS Cost_According_To_Customers, [11], [22], [33] FROM (SELECT CustomerID, Cost FROM Suppliers) AS SourceTable PIVOT (AVG (Cost) FOR CustomerID IN ( [11], [22], [33])) SEBAGAI PivotTable

Keluaran:

Cost_According_To_Customers sebelas2233
AverageCostofCustomer 1787.7546545238.33

catatan: Saat Anda menggunakan fungsi agregat dengan PIVOT, nilai nol tidak dipertimbangkan saat menghitung agregasi.

Nah, itu adalah contoh dasar, tapi sekarang mari kita pahami bagaimana klausa PIVOT bekerja.

Bekerja dari klausul PIVOT

Seperti yang Anda lihat di atas, untuk membuat TABEL PIVOT, Anda harus mengikuti langkah-langkah di bawah ini:

  • Pilih kolom untuk pivot
  • Lalu, pilih tabel sumber.
  • Terapkan operator PIVOT, lalu gunakan fungsi agregat.
  • Sebutkan nilai pivot.

Pilih kolom untuk pivot

Awalnya, kami harus menentukan bidang yang akan disertakan dalam hasil kami. Dalam contoh kami, saya mempertimbangkan kolom AverageCostofCustomer di tabel Pivot. Kemudian kami membuat tiga kolom lainnya dengan judul kolom 11, 22, dan 33. Contoh-

PILIH 'AverageCostofCustomer' AS Cost_According_To_Customers, [11], [22], [33]

Pilih tabel sumber

Selanjutnya, Anda harus menentukan pernyataan SELECT yang akan mengembalikan data sumber untuk tabel pivot. Dalam contoh kami, kami mengembalikan ID Pelanggan dan Biaya dari tabel Pemasok.

(PILIH ID Pelanggan, Biaya DARI Pemasok) sebagai Tabel Sumber

Terapkan operator PIVOT, lalu gunakan fungsi agregat

Selanjutnya, Anda harus menentukan fungsi agregat yang akan digunakan saat membuat tabel pivot. Dalam contoh kami, saya telah menggunakan fungsi AVG untuk menghitung biaya rata-rata.

PIVOT (AVG (Biaya)

Sebutkan nilai pivot

Terakhir, Anda harus menyebutkan nilai yang harus disertakan dalam tabel pivot yang dihasilkan. Nilai-nilai ini akan digunakan sebagai tajuk kolom di tabel pivot.

UNTUK ID Pelanggan DI ([11], [22], [33])) SEBAGAI PivotTable

Begitulah cara kerja operator PIVOT. Melanjutkan artikel tentang SQL PIVOT ini, mari kita pahami betapa berbedanya dengan SQL UNPIVOT.

SQL UNPIVOT

Operator SQL UNPIVOT digunakan untuk melakukan operasi kebalikan dari PIVOT. Ini digunakan untuk memutar data kolom menjadi data tingkat baris. Sintaks UNPIVOT mirip dengan PIVOT. Satu-satunya perbedaan adalah Anda harus menggunakan file ' UNPIVOT ” .

Contoh:

Mari kita buat tabel dengan kolom SupplierID, AAA, BBB, dan CCC. Juga, masukkan beberapa nilai.

BUAT TABEL sampletable (SupplierID int, AAA int, BBB int, CCC int) GO INSERT INTO sampletable VALUES (1,3,5,6) INSERT INTO sampletable VALUES (2,9,2,8) INSERT INTO sampletable VALUES (3, 8,1,7) PERGI

Keluaran:

SupplierID AAA BBB CCC
satu356
2928
38satu7

Sekarang, katakanlah, kami ingin memisahkan tabel. Untuk melakukan itu, Anda dapat merujuk ke kode berikut:

PILIH SupplierID, Pelanggan, Produk DARI (PILIH PemasokD, AAA, BBB, CCC DARI sampletable) p UNPIVOT (Produk UNTUK Pelanggan DI (AAA, BBB, CCC)) SEBAGAI contoh GO
SupplierID Pelanggan Produk

satu

AAA

3

satu

BBB

5

satu

CCC

6

2

AAA

9

2

BBB

2

2

CCC

metode kelas pemindai mana yang membaca string?

8

3

AAA

8

3

BBB

satu

3

CCC

7

Begitulah cara Anda menggunakan SQL PIVOT dan UNPIVOT. Dengan ini, kami mengakhiri artikel ini. Saya harap Anda mengerti, bagaimana menggunakan SQL. Jika Anda ingin mempelajari lebih lanjut tentang MySQL dan kenali basis data relasional sumber terbuka ini, lalu lihat yang dilengkapi dengan pelatihan langsung yang dipimpin instruktur dan pengalaman proyek kehidupan nyata. Pelatihan ini akan membantu Anda memahami MySQL secara mendalam dan membantu Anda menguasai subjek.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar artikel ini di SQL Pivot dan saya akan menghubungi Anda kembali.