SQL Pivot - Știți cum să convertiți rândurile în coloane



Acest articol despre SQL Pivot este un ghid cuprinzător despre cum să convertiți datele la nivel de rând în date coloane cu exemple detaliate.

Relațional stocați cantități enorme de date sub formă de tabele. Aceste tabele pot avea orice număr de rânduri și coloane. Dar ce se întâmplă dacă ar trebui să schimbați datele la nivel de rând în date coloane? Ei bine, în acest articol despre SQL Pivot, vă voi arăta cum puteți converti rândurile într-o coloană dintr-un SQL Server.

Următoarele subiecte vor fi tratate în acest articol:





Ce este PIVOT în SQL?

PIVOT este utilizat pentru a roti valoarea tabelului prin conversia valorilor unice ale unei singure coloane în mai multe coloane. Este folosit pentru a roti rândurile la valorile coloanei și rulează agregări atunci când este necesar pentru valorile coloanei rămase.

UNPIVOT, pe de altă parte, este utilizat pentru efectuarea operațiunilor opuse. Deci, este folosit pentru a converti coloanele unui anumit tabel în valori de coloană.



Mai departe în acest articol, să înțelegem sintaxa SQL Pivot.

Sintaxă:

SELECT NonPivoted ColumnName, [First Pivoted ColumnName] AS ColumnName, [Second Pivoted ColumnName] AS ColumnName, [Third Pivoted ColumnName] AS ColumnName, ... [Last Pivoted ColumnName] AS ColumnName FROM (SELECT interogare care produce datele) AS [alias pentru interogarea inițială] PIVOT ([AggregationFunction] (ColumName) FOR [ColumnName al coloanei ale cărei valori vor deveni anteturi de coloană] IN ([First Pivoted ColumnName], [Second Pivoted ColumnName], [Third Pivoted ColumnName] ... [last coloana pivotată])) AS [alias pentru tabelul pivot]

Aici,puteți utiliza, de asemenea, Clauza ORDER BY pentru a sorta valorile fie în ordine crescătoare, fie descendentă. Acum, că știți ce este PIVOT în SQL și sintaxa sa de bază, permiteți-ne să mergem mai departe și să vedem cum să-l folosim.

când să folosiți acest lucru în java

Exemple

Pentru o mai bună înțelegere, voi lua în considerare următorul tabel pentru a vă explica toate exemplele.



Tabel furnizor:

ID furnizor DaysofManufacture Cost Număr de înregistrare client ID cumpărare
unu121230unsprezeceP1
2douăzeci și unu154322P2
3322. 3. 4. 5unsprezeceP3
414876522P1
542345233P3
631543133P1
7412342unsprezeceP2
854365422P2
9331234unsprezeceP3
1056683233P2

Permiteți-ne să scriem o interogare simplă pentru a recupera costul mediu cheltuit de fiecare client.

SELECTAȚI ID-ul clientului, AVG (Cost) CA Cost mediu al clientului DIN GRUPUL Furnizorilor după ID-ul clientului

Ieșire:

Număr de înregistrare client AverageCostofCustomer
unsprezece1787,75
224654
335238,33

Acum, să spunem că vrem să pivotăm tabelul de mai sus. Aici, valorile coloanei CustomerID vor deveni anteturile coloanei.

- Creați un tabel pivot cu un rând și trei coloane SELECTAȚI „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])) AS PivotTable

Ieșire:

Cost_According_To_Customers unsprezece2233
AverageCostofCustomer 1787,7546545238,33

Notă: Când folosești funcții agregate cu PIVOT, valorile nule nu sunt luate în considerare în timpul calculării unei agregări.

Ei bine, acesta a fost un exemplu de bază, dar să înțelegem acum cum a funcționat clauza PIVOT.

Funcționarea clauzei PIVOT

După cum puteți consulta mai sus, pentru a crea un TABEL PIVOT, trebuie să urmați pașii de mai jos:

  • Selectați coloane pentru pivotare
  • Apoi, selectați un tabel sursă.
  • Aplicați operatorul PIVOT și apoi utilizați funcțiile agregate.
  • Menționați valorile pivot.

Selectați coloane pentru pivotare

Inițial, trebuie să specificăm câmpurile care trebuie incluse în rezultatele noastre. În exemplul nostru, am luat în considerare coloana AverageCostofCustomer din tabelul pivot. Apoi am creat alte trei coloane cu anteturile de coloană 11, 22 și 33. Exemplu-

SELECTAȚI „AverageCostofCustomer” AS Cost_According_To_Customers, [11], [22], [33]

Selectați tabelul sursă

Apoi, trebuie să specificați instrucțiunea SELECT care va returna datele sursă pentru tabelul pivot. În exemplul nostru, returnăm CustomerID și Cost din tabelul Furnizori.

(SELECȚIONAȚI ID-ul clientului, costul de la furnizori) CA sursă

Aplicați operatorul PIVOT și apoi utilizați funcțiile agregate

Apoi, trebuie să specificați funcția agregată care va fi utilizată la crearea tabelului pivot. În exemplul nostru, am folosit funcția AVG pentru a calcula costul mediu.

PIVOT (AVG (Cost)

Menționați valorile pivot

În cele din urmă, trebuie să menționați valorile care trebuie incluse în tabelul pivot rezultat. Aceste valori vor fi utilizate ca titluri de coloană din tabelul pivot.

PENTRU CustomerID IN ([11], [22], [33])) CA tabel pivot

Așa funcționează operatorii PIVOT. Trecând mai departe în acest articol despre SQL PIVOT, să înțelegem cât de diferit este de SQL UNPIVOT.

SQL UNPIVOT

Operatorul SQL UNPIVOT este utilizat pentru a efectua operația opusă celei a PIVOT. Este folosit pentru a roti datele coloanei în date la nivel de rând. Sintaxa UNPIVOT este similară cu cea a PIVOT. Singura diferență este că trebuie să utilizați ' UNPIVOT ” .

Exemplu:

Să creăm un tabel cu coloanele FurnizorID, AAA, BBB și CCC. De asemenea, introduceți câteva valori.

CREATE TABLE sampletable (SupplierID int, AAA int, BBB int, CCC int) INTRODUȚI ÎN VALOARE sampletable (1,3,5,6) INSERT INTO sampletable VALUES (2,9,2,8) INSERT INTO sampletable VALUE (3, 8,1,7) GO

Ieșire:

ID furnizor AAA BBB CCC
unu356
2928
38unu7

Acum, să spunem, vrem să ne despivotăm tabelul. Pentru a face acest lucru, puteți consulta următorul cod:

SELECTAȚI Furnizorul ID, Clienții, Produsele DE LA (SELECȚIONEAZĂ Furnizorul, AAA, BBB, CCC DE la sampletable) p UNPIVOT (Produse PENTRU Clienții din (AAA, BBB, CCC)) CA exemplu GO
ID furnizor Clienți Produse

unu

AAA

3

unu

BBB

5

unu

sortează numerele c ++

CCC

6

2

AAA

9

2

final vs final vs finalize

BBB

2

2

CCC

8

3

AAA

8

3

BBB

unu

3

CCC

7

Așa puteți utiliza SQL PIVOT și UNPIVOT. Cu aceasta, ajungem la sfârșitul acestui articol. Sper că ați înțeles cum să utilizați SQL. Dacă doriți să aflați mai multe despre MySQL și cunoașteți această bază de date relațională open-source, apoi consultați-ne care vine cu instruire live condusă de instructor și experiență de proiect din viața reală. Această instruire vă va ajuta să înțelegeți în profunzime MySQL și vă va ajuta să obțineți stăpânirea asupra subiectului.

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii a acestui articol despre SQL Pivot și vă voi răspunde.