SQL Pivot: scopri come convertire le righe in colonne



Questo articolo su SQL Pivot è una guida completa su come convertire i dati a livello di riga in dati a colonne con esempi approfonditi.

Relazionale memorizzare enormi quantità di dati sotto forma di tabelle. Queste tabelle possono avere un numero qualsiasi di righe e colonne. Ma cosa succede se dovessi modificare i dati a livello di riga in dati a colonne? Bene, in questo articolo su SQL Pivot, ti mostrerò come convertire le righe in una colonna in un SQL Server.

In questo articolo verranno trattati i seguenti argomenti:





Cos'è PIVOT in SQL?

PIVOT viene utilizzato per ruotare il valore della tabella convertendo i valori univoci di una singola colonna in più colonne. Viene utilizzato per ruotare le righe in valori di colonna ed esegue aggregazioni quando richiesto sui valori di colonna rimanenti.

UNPIVOT, invece, viene utilizzato per eseguire le operazioni opposte. Quindi, viene utilizzato per convertire le colonne di una tabella specifica in valori di colonna.



Andando avanti in questo articolo, cerchiamo di capire la sintassi di SQL Pivot.

Sintassi:

SELECT NonPivoted ColumnName, [First Pivoted ColumnName] AS ColumnName, [Second Pivoted ColumnName] AS ColumnName, [Third Pivoted ColumnName] AS ColumnName, ... [Ultimo Pivoted ColumnName] AS ColumnName DA (SELEZIONA query che produce i dati) AS [alias per la query iniziale] PIVOT ([AggregationFunction] (ColumName) FOR [ColumnName della colonna i cui valori diventeranno intestazioni di colonna] IN ([First Pivoted ColumnName], [Second Pivoted ColumnName], [Third Pivoted ColumnName] ... [ultimo colonna pivot])) AS [alias per la tabella pivot]

Qui,puoi anche usare il file Clausola ORDER BY per ordinare i valori in ordine crescente o decrescente. Ora che sai cos'è PIVOT in SQL e la sua sintassi di base, andiamo avanti e vediamo come usarlo.

Esempi

Per una tua migliore comprensione, prenderò in considerazione la seguente tabella per spiegarti tutti gli esempi.



Tabella fornitori:

ID fornitore DaysofManufacture Costo Identificativo del cliente ID acquisto
uno121230undiciP1
2ventuno154322P2
3322. 3. 4. 5undiciP3
414876522P1
542345233P3
631543133P1
7412342undiciP2
854365422P2
9331234undiciP3
1056683233P2

Scriviamo una semplice query per recuperare il costo medio speso da ogni cliente.

SELEZIONA ID cliente, AVG (costo) COME costo medio del cliente DA FORNITORI GRUPPO PER ID cliente

Produzione:

Identificativo del cliente Costo medio del cliente
undici1787.75
224654
335238.33

Ora, diciamo di voler ruotare la tabella sopra. Qui, i valori della colonna CustomerID diventeranno le intestazioni di colonna.

- Crea una tabella pivot con una riga e tre colonne SELEZIONA 'Costo medio del cliente' 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])) COME tabella pivot

Produzione:

Cost_According_To_Customers undici2233
Costo medio del cliente 1787.7546545238.33

Nota: Quando usi funzioni aggregate con PIVOT, i valori nulli non vengono considerati durante il calcolo di un'aggregazione.

Bene, questo era un esempio di base, ma ora capiamo come funzionava la clausola PIVOT.

Clausola di funzionamento PIVOT

Come puoi fare riferimento sopra, per creare una TAVOLA PIVOT, devi seguire i passaggi seguenti:

  • Seleziona le colonne per la rotazione
  • Quindi, seleziona una tabella di origine.
  • Applicare l'operatore PIVOT e quindi utilizzare le funzioni di aggregazione.
  • Menziona i valori pivot.

Seleziona le colonne per la rotazione

Inizialmente, dobbiamo specificare i campi da includere nei nostri risultati. Nel nostro esempio, ho considerato la colonna AverageCostofCustomer nella tabella pivot. Quindi abbiamo creato altre tre colonne con le intestazioni di colonna 11, 22 e 33. Esempio-

SELEZIONA 'Costo medio del cliente' AS Cost_According_To_Customers, [11], [22], [33]

Seleziona tabella di origine

Successivamente, è necessario specificare l'istruzione SELECT che restituirà i dati di origine per la tabella pivot. Nel nostro esempio, restituiamo CustomerID e Cost dalla tabella Suppliers.

(SELEZIONA ID cliente, costo DA fornitori) COME tabella di origine

Applicare l'operatore PIVOT e quindi utilizzare le funzioni di aggregazione

Successivamente, è necessario specificare la funzione di aggregazione da utilizzare durante la creazione della tabella pivot. Nel nostro esempio, ho utilizzato la funzione AVG per calcolare il costo medio.

PIVOT (AVG (costo)

Menziona i valori pivot

Infine, devi menzionare i valori che devono essere inclusi nella tabella pivot risultante. Questi valori verranno utilizzati come intestazioni di colonna nella tabella pivot.

FOR CustomerID IN ([11], [22], [33])) COME tabella pivot

È così che funzionano gli operatori PIVOT. Andando avanti in questo articolo su SQL PIVOT, cerchiamo di capire quanto sia diverso da SQL UNPIVOT.

SQL UNPIVOT

L'operatore SQL UNPIVOT viene utilizzato per eseguire l'operazione opposta a quella di PIVOT. Viene utilizzato per ruotare i dati della colonna in dati a livello di riga. La sintassi di UNPIVOT è simile a quella di PIVOT. L'unica differenza è che devi usare il file ' UNPIVOT ' .

al metodo stringa in java

Esempio:

Creiamo una tabella con le colonne ID fornitore, AAA, BBB e CCC. Inoltre, inserisci pochi valori.

CREATE TABLE 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) VAI

Produzione:

ID fornitore AAA BBB CCC
uno356
2928
38uno7

Ora, diciamo, vogliamo rimuovere il perno della tabella. Per farlo, puoi fare riferimento al seguente codice:

SELECT SupplierID, Customers, Products FROM (SELECT SupplierD, AAA, BBB, CCC FROM sampletable) p UNPIVOT (Products FOR Customers IN (AAA, BBB, CCC)) AS example GO
ID fornitore Clienti Prodotti

uno

AAA

3

uno

BBB

5

uno

CCC

6

2

AAA

9

2

BBB

2

2

CCC

8

3

AAA

8

3

BBB

uno

3

CCC

7

È così che puoi utilizzare SQL PIVOT e UNPIVOT. Con questo, arriviamo alla fine di questo articolo. Spero tu abbia capito come usare SQL. Se desideri saperne di più su MySQL e conosci questo database relazionale open source, quindi dai un'occhiata al nostro che viene fornito con formazione dal vivo con istruttore e esperienza di progetto nella vita reale. Questa formazione ti aiuterà a comprendere MySQL in profondità e ti aiuterà a ottenere la padronanza dell'argomento.

Hai domande per noi? Per favore menzionalo nella sezione commenti di questo articolo su SQL Pivot e ti ricontatterò.