SQL Pivot - Tudja, hogyan lehet a sorokat oszlopokká konvertálni



Ez a cikk az SQL Pivotról tartalmaz átfogó útmutatót arról, hogyan lehet a sorszintű adatokat oszlopos adatokká konvertálni, részletes példákkal.

Relációs hatalmas mennyiségű adatot tároljon táblázatok formájában. Ezek a táblák tetszőleges számú sort és oszlopot tartalmazhatnak. De mi lenne, ha a sorszintű adatokat oszlopos adatokra kellene változtatnia? Nos, ebben a cikkben az SQL Pivotról megmutatom, hogyan lehet konvertálni a sorokat oszlopká az SQL Serverben.

válasszon c ++ -t

A cikk a következő témákkal foglalkozik:





Mi az a PIVOT az SQL-ben?

A PIVOT a táblaérték forgatására szolgál, egyetlen oszlop egyedi értékeinek több oszlopra konvertálásával. Arra használják, hogy a sorokat oszlopértékekre forgassák, és szükség esetén összesítéseket futtasson a fennmaradó oszlopértékeken.

Az UNPIVOT-ot viszont ellenkező műveletek végrehajtására használják. Tehát egy adott tábla oszlopainak oszlopértékekké konvertálására szolgál.



Ebben a cikkben folytatva értsük meg az SQL Pivot szintaxisát.

Szintaxis:

SELECT nem csuklós oszlopnév, [első elfordított oszlopnév] AS oszlopnév, [második elforgatott oszlopnév] AS oszlopnév, [harmadik elforgatott oszlopnév] AS oszlopnév, ... [utolsó elforgatott oszlopnév] AS oszlopnév FROM (SELECT lekérdezés, amely az adatokat előállítja) AS [alias a kezdeti lekérdezéshez] PIVOT ([AggregationFunction] (ColumName) FOR [OszlopNév annak az oszlopnak, amelynek értékei oszlopfejlécekké válnak] IN ([Első elforgatott oszlopnév], [Második elforgatott oszlopnév], [Harmadik elforgatott oszlopnév] ... [utolsó elfordított oszlop])) AS [álneve a kimutatási táblának]

Itt,használhatja a ORDER BY záradék hogy az értékeket növekvő vagy csökkenő sorrendben rendezze. Most, hogy tudja, mi a PIVOT az SQL-ben és annak alapvető szintaxisában, lépjünk előre, és nézzük meg, hogyan kell használni.

Példák

A jobb megértés érdekében a következő táblázatot veszem figyelembe, hogy elmagyarázzam neked az összes példát.



Beszállítói táblázat:

Szállítóazonosító NapokManufacture Költség Ügyfél-azonosító PurchaseID
egy12.1230tizenegyP1
2huszonegy154322.P2
3322. 3. 4. 5tizenegyP3
414876522.P1
5.42345233P3
6.31543133P1
7412342tizenegyP2
8.54.365422.P2
9.331234tizenegyP3
10.56683233P2

Írjunk egyszerű lekérdezést az egyes vásárlók átlagos költségeinek lekérdezéséhez.

Válassza ki a CustomerID, AVG (Cost) AS AverageCostofCustomer-t a beszállítók csoportjából CustomerID szerint

Kimenet:

Ügyfél-azonosító AverageCostofCustomer
tizenegy1787,75
22.4654
335238,33

Most tegyük fel, hogy el akarjuk forgatni a fenti táblázatot. Itt a CustomerID oszlopértékek oszlopfejlécekké válnak.

- Pivot-tábla létrehozása egy sorral és három oszloppal. SELECT '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

Kimenet:

Cost_According_To_Customers tizenegy22.33
AverageCostofCustomer 1787,7546545238,33

Jegyzet: Amikor használja összesített függvények PIVOT esetén a null értékeket nem vesszük figyelembe az összesítés kiszámítása során.

Nos, ez egy alapvető példa volt, de most értsük meg, hogyan működött a PIVOT záradék.

A PIVOT záradék működése

A fentiekben említettek szerint a PIVOT TABLE létrehozásához kövesse az alábbi lépéseket:

  • Válassza ki az oszlopokat az elforgatáshoz
  • Ezután válasszon egy forrás táblázatot.
  • Alkalmazza a PIVOT operátort, majd használja az összesítő függvényeket.
  • Említse meg a pivot értékeket.

Válassza ki az oszlopokat az elforgatáshoz

Kezdetben meg kell határoznunk azokat a mezőket, amelyeket be kell vonni az eredményeinkbe. Példánkban a Pivot tábla AverageCostofCustomer oszlopát vettem figyelembe. Ezután három másik oszlopot hoztunk létre a 11., 22. és 33. oszlopfejlécekkel.

Válassza ki az 'AverageCostofCustomer' AS Cost_According_To_Customers [11], [22], [33]

Válassza ki a forrás táblázatot

Ezután meg kell adnia a SELECT utasítást, amely visszaadja a kimutatási táblázat forrásadatait. Példánkban visszaküldjük a CustomerID és a Cost értéket a Beszállítók táblából.

(SELECT CustomerID, költség a beszállítóktól) AS SourceTable

Alkalmazza a PIVOT operátort, majd használja az összesítő függvényeket

Ezután meg kell adnia az összesítő függvényt, amelyet a forgatótábla létrehozása során használni kell. Példánkban az AVG függvényt használtam az átlagos költség kiszámításához.

PIVOT (AVG (költség)

Említse meg a pivot értékeket

Végül meg kell említenie azokat az értékeket, amelyeket fel kell venni az eredő pivot táblába. Ezeket az értékeket az oszlopfejlécekként kell használni a kimutatásban.

FOR CustomerID IN ([11], [22], [33])) AS PivotTable

Így működnek a PIVOT operátorok. Az SQL PIVOT-ról szóló cikkben továbblépve értsük meg, mennyiben különbözik az SQL UNPIVOT-tól.

SQL UNPIVOT

Az SQL UNPIVOT operátor a PIVOT-nal ellentétes művelet végrehajtására szolgál. Arra szolgál, hogy az oszlop adatait sor szintű adatokká alakítsa. Az UNPIVOT szintaxisa hasonló a PIVOT-hoz. Az egyetlen különbség az, hogy a ' UNPIVOT ” .

Példa:

Hozzunk létre egy táblázatot a SupplierID, AAA, BBB és CCC oszlopokkal. Illesszen be néhány értéket.

CREATE TABLE mintavételezés (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) GO

Kimenet:

Szállítóazonosító AAA BBB CCC
egy35.6.
29.28.
38.egy7

Most tegyük fel, hogy fel akarjuk oldani az asztal forgatását. Ehhez hivatkozhat a következő kódra:

SELECT SupplierID, vásárlók, termékek FROM (SELECT SupplierD, AAA, BBB, CCC FROM sampletable) p UNPIVOT (termékek vevőknek (AAA, BBB, CCC)) AS példa GO
Szállítóazonosító Ügyfelek Termékek

egy

AAA

3

egy

BBB

5.

egy

CCC

6.

2

AAA

9.

2

BBB

2

2

CCC

8.

3

AAA

8.

3

BBB

egy

3

CCC

7

Így használhatja az SQL PIVOT és az UNPIVOT programokat. Ezzel véget értünk ennek a cikknek. Remélem, megértette, hogyan kell használni az SQL-t. Ha többet szeretne megtudni a MySQL és ismerje meg ezt a nyílt forráskódú relációs adatbázist, majd nézze meg a mi amely oktató által vezetett élő képzéssel és valós projekt-tapasztalattal jár. Ez a képzés segít megérteni a MySQL-t alaposan, és elsajátítja a témát.

Van egy kérdésünk? Kérjük, említse meg az SQL Pivot-ról szóló cikk megjegyzés szakaszában, és még visszatérek.