Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Pivot Berbilang Lajur dalam Pelayan SQL untuk Persembahan Data Optimum?

Bagaimana untuk Pivot Berbilang Lajur dalam Pelayan SQL untuk Persembahan Data Optimum?

Susan Sarandon
Susan Sarandonasal
2024-12-31 18:21:12184semak imbas

How to Pivot Multiple Columns in SQL Server for Optimal Data Presentation?

Memindahkan Berbilang Lajur dalam Pelayan SQL untuk Persembahan Data Optimum

Apabila bekerja dengan pangkalan data hubungan, jadual pangsi boleh menjadi cara yang berkesan untuk membentuk semula data untuk analisis dan visualisasi yang lebih mudah. Dalam SQL Server, teknik ini amat berguna apabila berurusan dengan jadual yang mempunyai berbilang lajur yang anda ingin paparkan sebagai baris.

Pernyataan Masalah:

Pertimbangkan contoh berikut jadual:

Branch  | Category | Sales | Stock  | Target
------- | ******** | ----- | ----- | -------
Branch1 | Panel    | 100   | 200   | 300
Branch1 | AC       | 150   | 250   | 350
Branch1 | Ref      | 200   | 300   | 400

Matlamatnya adalah untuk memutar lajur Kategori dan memaparkan lajur Jualan, Stok dan Sasaran sebagai baris, menghasilkan output berikut:

Branch  | Panel | AC   | Ref  |
------- | ------ | -- | ---- |
Branch1 | 100   | 150 | 200  |

Penyelesaian:

Untuk mencapai output yang dikehendaki, kami boleh menggunakan satu siri pernyataan pangsi dalam SQL Server. Kuncinya ialah menamakan semula lajur dalam hasil pangsi perantaraan untuk menyediakan operasi pangsi seterusnya.

Pertimbangkan kod berikut:

SELECT
*
FROM
(
  SELECT 
   Branch,
   Category,
   Category+'1' As Category1,
   Category+'2' As Category2,
   Sales, 
   Stock, 
   Target
  FROM TblPivot
 ) AS P

 -- For Sales
 PIVOT
 (
   SUM(Sales) FOR Category IN ([Panel], [AC], [Ref])
 ) AS pv1

 -- For Stock
 PIVOT
 (
   SUM(Stock) FOR Category1 IN ([Panel1], [AC1], [Ref1])
 ) AS pv2

 -- For Target
 PIVOT
 (
   SUM(Target) FOR Category2 IN ([Panel2], [AC2], [Ref2])
 ) AS pv3
 GO

Kod ini melaksanakan langkah berikut:

  1. Sediakan Data: Ia menamakan semula Kategori lajur dan menambah dua lajur tambahan, Kategori1 dan Kategori2, untuk memudahkan pangsi berikutnya.
  2. Pangsi untuk Jualan: Penyataan pangsi pertama mencipta jadual pv1, yang menjumlahkan jualan bagi setiap kategori.
  3. Pivot untuk Stok: Pernyataan pangsi kedua mencipta jadual pv2, yang menjumlahkan stok untuk setiap kategori.
  4. Pivot untuk Sasaran: Pernyataan pangsi ketiga mencipta jadual pv3, yang menjumlahkan sasaran untuk setiap kategori.

Jadual pv3 yang terhasil mengandungi output yang diingini, dengan kategori sebagai baris dan lajur mewakili jualan, stok, dan nilai sasaran.

Atas ialah kandungan terperinci Bagaimana untuk Pivot Berbilang Lajur dalam Pelayan SQL untuk Persembahan Data Optimum?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn