SQL Pivot - Alam kung paano i-convert ang mga hilera sa mga haligi



Ang artikulong ito sa SQL Pivot ay isang komprehensibong gabay sa kung paano i-convert ang data sa antas ng row sa data ng haligi na may malalim na mga halimbawa.

Kaugnay mag-imbak ng mga humongous na dami ng data sa anyo ng mga talahanayan. Ang mga talahanayan na ito ay maaaring magkaroon ng anumang bilang ng mga hilera at haligi. Ngunit, paano kung kailangan mong baguhin ang data sa antas ng hilera sa data ng haligi? Sa gayon, sa artikulong ito sa SQL Pivot, ipapakita ko sa iyo kung paano mo mai-convert ang mga hilera sa isang haligi sa isang SQL Server.

Ang mga sumusunod na paksa ay saklaw sa artikulong ito:





Ano ang PIVOT sa SQL?

Ginagamit ang PIVOT upang paikutin ang halaga ng talahanayan sa pamamagitan ng pag-convert ng mga natatanging halaga ng isang solong haligi sa maraming mga haligi. Ginagamit ito upang paikutin ang mga hilera sa mga haligi ng haligi at nagpapatakbo ng mga pagsasama-sama kapag kinakailangan sa natitirang mga haligi ng haligi.

Ang UNPIVOT, sa kabilang banda, ay ginagamit upang maisakatuparan ang kabaligtaran na operasyon. Kaya, ginagamit ito upang mai-convert ang mga haligi ng isang tukoy na talahanayan sa mga haligi ng haligi.



Ang pagpapatuloy sa artikulong ito, ipaalam sa amin na maunawaan ang syntax ng SQL Pivot.

Syntax:

SELECT NonPivoted ColumnName, [First Pivoted ColumnName] AS ColumnName, [Second Pivoted ColumnName] AS ColumnName, [Third Pivoted ColumnName] AS ColumnName, ... [Last Pivoted ColumnName] AS ColumnName MULA SA (SELECT query na gumagawa ng data) AS [alias para sa paunang query] PIVOT ([AggregationFunction] (ColumName) PARA sa [ColumnName ng haligi na ang mga halagang magiging mga header ng haligi] SA ([First Pivoted ColumnName], [Second Pivoted ColumnName], [Third Pivoted ColumnName] ... [huling pivoted na haligi])) AS [alias para sa Pivot Table]

Dito,maaari mo ring gamitin ang ORDER NG sugnay upang pag-uri-uriin ang mga halaga alinman sa pataas o pababang pagkakasunud-sunod. Ngayong alam mo na kung ano ang PIVOT sa SQL at ang pangunahing syntax nito, magpatulong tayo at tingnan kung paano ito magagamit.

ano ang tag ng span sa html

Mga halimbawa

Para sa iyong mas mahusay na pag-unawa, isasaalang-alang ko ang sumusunod na talahanayan upang ipaliwanag sa iyo ang lahat ng mga halimbawa.



Talaan ng Tagatustos:

TagatustosID DaysofManufaktur Gastos CustomerID BumiliID
isa121230labing-isangP1
2dalawampu't isa154322P2
3322. 3. 4. 5labing-isangP3
414876522P1
542345233P3
631543133P1
7412342labing-isangP2
854365422P2
9331234labing-isangP3
1056683233P2

Sumulat kami sa isang simpleng query upang makuha ang average na gastos na ginugol ng bawat customer.

PUMILI ng CustomerID, AVG (Gastos) AS AverageCostofCustomer MULA SA Mga Supplier GROUP NG CustomerID

Output:

CustomerID AverageCostofCustomer
labing-isang1787.75
224654
335238.33

Ngayon, sabihin nating nais nating i-pivot ang talahanayan sa itaas. Dito, ang mga halagang haligi ng CustomerID ay magiging mga header ng haligi.

- Lumikha ng talahanayan ng Pivot na may isang hilera at tatlong mga haligi PILIHIN 'AverageCostofCustomer' AS Cost_According_To_Customers, [11], [22], [33] MULA SA (SELECT CustomerID, Gastos MULA SA Mga Supplier) AS SourceTable PIVOT (AVG (Cost) PARA SA CustomerID IN ( [11], [22], [33])) AS PivotTable

Output:

Cost_According_To_Customers labing-isang2233
AverageCostofCustomer 1787.7546545238.33

Tandaan: Kapag ginamit mo pinagsama-samang pag-andar sa PIVOT, ang mga null na halaga ay hindi isinasaalang-alang habang nagkukompyuter ng isang pagsasama-sama.

Sa gayon, iyon ay isang pangunahing halimbawa, ngunit maunawaan natin ngayon kung paano gumagana ang sugnay na PIVOT.

Paggawa ng sugnay na PIVOT

Tulad ng maaari kang mag-refer sa itaas, upang lumikha ng isang PIVOT TABLE, kailangan mong sundin ang mga hakbang sa ibaba:

  • Piliin ang mga haligi para sa pivoting
  • Pagkatapos, pumili ng isang pinagmulan ng talahanayan.
  • Ilapat ang operator ng PIVOT, at pagkatapos ay gamitin ang pinagsamang mga pagpapaandar.
  • Nabanggit ang mga halagang pivot.

Piliin ang mga haligi para sa pivoting

Sa una, kailangan naming tukuyin ang mga patlang na maisasama sa aming mga resulta. Sa aming halimbawa, isinasaalang-alang ko ang haligi ng AverageCostofCustomer sa talahanayan ng Pivot. Pagkatapos ay gumawa kami ng tatlong iba pang mga haligi na may mga header ng haligi 11, 22, at 33. Halimbawa-

PUMILI ng 'AverageCostofCustomer' AS Cost_According_To_Customers, [11], [22], [33]

Piliin ang talahanayan ng pinagmulan

Susunod, kailangan mong tukuyin ang piling pahayag na magbabalik ng pinagmulang data para sa talahanayan ng pivot. Sa aming halimbawa, ibinabalik namin ang CustomerID at Gastos mula sa talahanayan ng Mga Tagatustos.

(PUMILI NG CustomerID, Gastos MULA SA Mga Tagatustos) AS SourceTable

Ilapat ang operator ng PIVOT, at pagkatapos ay gamitin ang pinagsamang mga pagpapaandar

Susunod, kailangan mong tukuyin ang pinagsamang pagpapaandar na gagamitin habang lumilikha ng talahanayan ng pivot. Sa aming halimbawa, ginamit ko ang pagpapaandar ng AVG upang makalkula ang average na gastos.

PIVOT (AVG (Gastos)

Nabanggit ang mga halagang pivot

Panghuli, kailangan mong banggitin ang mga halagang kailangang isama sa nagresultang talahanayan ng pivot. Ang mga halagang ito ay gagamitin bilang mga heading ng haligi sa talahanayan ng pivot.

PARA SA CustomerID SA ([11], [22], [33])) AS PivotTable

Ganyan gumagana ang mga operator ng PIVOT. Ang pagpapatuloy sa artikulong ito sa SQL PIVOT, ipaalam sa amin kung gaano ito kaiba mula sa SQL UNPIVOT.

SQL UNPIVOT

Ang operator ng SQL UNPIVOT ay ginagamit upang isakatuparan ang kabaligtaran na operasyon ng PIVOT. Ginagamit ito upang paikutin ang data ng haligi sa data ng antas ng hilera. Ang syntax, ng UNPIVOT, ay katulad ng sa PIVOT. Ang pagkakaiba lamang ay kailangan mong gamitin ang ' UNPIVOT ” .

Halimbawa:

Lumikha tayo ng isang talahanayan na may mga haligi na SupplierID, AAA, BBB, at CCC. Gayundin, maglagay ng ilang mga halaga.

GUMAWA NG NAG-sample na TABLE (SupplierID int, AAA int, BBB int, CCC int) PUMASOK SA mga halimbawang VALUES (1,3,5,6) I-INSERT SA MGA halimbawang VALUES (2,9,2,8) I-INSERT SA MGA halimbawang VALUES (3, 8,1,7) GO

Output:

TagatustosID AAA BBB CCC
isa356
2928
38isa7

Ngayon, sabihin natin, nais nating i-undivot ang talahanayan. Upang magawa iyon, maaari kang mag-refer sa sumusunod na code:

PUMILI ng SupplierID, Mga Customer, Produkto MULA SA (SELECT SupplierD, AAA, BBB, CCC MULA sa nai-sample) p UNPIVOT (Mga Produkto PARA SA Mga Customer SA (AAA, BBB, CCC)) KUNG halimbawang PUMUNTA
TagatustosID Mga suki Mga produkto

isa

AAA

3

isa

BBB

5

isa

masikip na pagkabit kumpara sa maluwag na pagkabit

CCC

6

2

AAA

9

2

BBB

2

2

CCC

8

3

AAA

8

3

__init__ python

BBB

isa

3

CCC

7

Iyon ang paraan kung paano mo magagamit ang SQL PIVOT at UNPIVOT. Sa pamamagitan nito, natapos namin ang artikulong ito. Umaasa ako na naintindihan mo, kung paano gamitin ang SQL. Kung nais mong malaman ang tungkol sa MySQL at makilala ang open-source na pakikipag-ugnay na database na ito, pagkatapos ay suriin ang aming na kasama ng live na pagsasanay na pinamunuan ng magtuturo at karanasan sa proyekto sa totoong buhay. Tutulungan ka ng pagsasanay na ito na maunawaan ang malalim na MySQL at tutulong sa iyo na makamit ang mastery sa paksa.

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento ng artikulong ito sa SQL Pivot at babalik ako sa iyo.