Rumah > pangkalan data > tutorial mysql > Bagaimanakah Fungsi PIVOT SQL Server Boleh Mengubah Data Luas kepada Format Yang Lebih Boleh Dianalisis?

Bagaimanakah Fungsi PIVOT SQL Server Boleh Mengubah Data Luas kepada Format Yang Lebih Boleh Dianalisis?

Susan Sarandon
Lepaskan: 2024-12-17 11:17:25
asal
244 orang telah melayarinya

How Can SQL Server's PIVOT Function Transform Wide Data to a More Analyzable Format?

Menggunakan PIVOT untuk Mengubah Data dalam SQL Server

Operasi SQL Server PIVOT membolehkan anda mengubah data daripada format lebar kepada format tinggi , menjadikannya lebih mudah untuk meringkaskan dan menganalisis data. Ini amat berguna dalam senario di mana anda ingin menukar data yang disusun dalam baris dan lajur kepada format yang setiap lajur mewakili atribut tertentu dan setiap baris mewakili nilai tertentu untuk atribut tersebut.

Senario contoh ialah transformasi daripada set data berikut, yang mempunyai data dalam format yang luas:

Name1 | Name2 | Value
-------|-------|-------
A     | P1     | 1
A     | P2     | 1
A     | P3     | 2
B     | P1     | 3
B     | P2     | 1
B     | P4     | 1
Salin selepas log masuk

Ke dalam yang berikut format:

       A     B
P1     1     4
P2     1     1
P3     2     NULL
P4     NULL  1
Salin selepas log masuk

Untuk mencapai transformasi ini dalam SQL Server 2005, kod berikut boleh digunakan:

DECLARE @cols VARCHAR(1000)
DECLARE @sqlquery VARCHAR(2000)

SELECT  @cols = STUFF(( SELECT distinct  ',' + QuoteName([Name1])
                        FROM myTable FOR XML PATH('') ), 1, 1, '') 


SET @sqlquery = 'SELECT * FROM
      (SELECT Name2, Name1, Value
       FROM myTable ) base
       PIVOT (Sum(Value) FOR [Name1]
       IN (' + @cols + ')) AS finalpivot'

EXECUTE ( @sqlquery )
Salin selepas log masuk

Kod ini secara dinamik memasang pertanyaan PIVOT berdasarkan nilai unik dalam Nama1 lajur. Ia mula-mula menggabungkan nilai Name1 yang berbeza ke dalam senarai dipisahkan koma, yang kemudiannya digunakan dalam pernyataan PIVOT untuk mencipta lajur baharu. Fungsi agregat SUM() mengira jumlah nilai untuk setiap atribut (Nama1) dalam setiap baris (Nama2).

Hasilnya ialah set data yang diubah dengan format tinggi yang diingini, di mana setiap lajur mewakili atribut Name1 dan setiap satu. baris mengandungi nilai jumlah yang sepadan untuk atribut itu. Format ini memudahkan analisis dan rumusan data dengan menyediakan paparan data yang lebih ringkas dan teratur.

Atas ialah kandungan terperinci Bagaimanakah Fungsi PIVOT SQL Server Boleh Mengubah Data Luas kepada Format Yang Lebih Boleh Dianalisis?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan