Mikä on pivot-taulukon SQL ?

Mikä on pivot-taulukon SQL ?

SQL, pivot-taulukko on joukko dataa, joka on muuttunut kokoelma eri riveillä kokoelmaan sarakkeita.Relaatiotietokantojen, kuten Microsoft SQL Server, Oracle ja MySQL, pivot-taulukot voidaan yksinkertaistaa laajoja tietoja, jotta se on helpompi lukea ja ymmärtää.Voit luoda pivot-taulukon, aggregaatti käytetään vastaan ​​joukko tietoja jakaa useita rivejä yhden sarakkeen yhdeksi peräkkäin useita sarakkeita.Tämä lähinnä kääntää tulosjoukon sivuttain.

näytedataa

  • Jotta voitaisiin paremmin ymmärtää pivot-taulukon, esimerkiksi noin myyntitietoja on lueteltu tässä.Kopioi seuraava Microsoft SQL Server Management Studio kokeilla esimerkkejä.

    Luo taulukko #PivotTestTable
    (CustName varchar (8),
    ITEM_TYPE varchar (8),
    Item_Amount numeerinen (6,2))

    työnnä #PivotTestTable
    valitse Jason ',' Computer ', 435,34
    liitto
    valitse Jason ', "Ohjelmistot", 243,54
    unionin
    valitse Jason', 'Näyttö', 158,23
    unionin
    valitse Alison ',' Computer ', 345,89
    unionin
    valitse Alison', 'Oh

    jelmistot', 78,78
    union
    valitse Alison "," seuranta ", 123,45

käynnistäminen UnPivoted tieto

  • Kun lämpötila pöytä, #PivotTestTable, kysytään, tulos on seuraava.

    CustName ITEM_TYPE Item_Amount

    Alison Tietokone 345,89
    Alison Monitor 123,45
    Alison Software 78,78
    Jason Computer 435,34
    Jason Monitor 158,23
    Jason Software 243,54

    Kuten näette, tulosjoukon osoittaa kaksi asiakasta, Alison ja Jason, joilla onosti kolme eri kohteita.On kuusi riviä tietoja kaksi asiakasta.Jos halusimme nähdä tiedot yhden rivin per asiakas, me käyttäisimme pivot-taulukko halutun tuloksen.

Pivot kääntötoimintoa

  • Microsoft SQL Server on kääntötoimintoa rakennettu SQL Server.Tässä on esimerkiksi #PivotTestTable tiedot.

    VALINTA

    CustName kuin Total_Sales_By_Cust,
    Computer,
    Monitor,
    Software

    alkaen

    (
    SELECT
    CustName,
    ITEM_TYPE,
    Item_Amount
    alkaen #PivotTestTable
    )

    PIVOT

    (
    summa (Item_Amount)
    FOR ITEM_TYPE vuonna(tietokone, monitori, Software)
    ) b

    Tämä kysely palauttaa alkuperäiseen kuusi riviä kääntyy kahteen riviin erilliset sarakkeet kullekin kohteen myyty.Tulosjoukon tuotettu tämä kysely on täällä:

    Total_Sales_By_Cust Tietokonenäyttö Software

    Alison 345,89 123,45 78,78
    Jason 435,34 158,23 243,54

Pivot yhteenvetokartat case-selvitys

  • Käyttämälläkoostefunktio (summa, AVG, MIN, MAX) noin tapaus lausuma SQL-kyselyn, voimme saavuttaa saman tuloksen kuin kääntötoimintoa vähemmällä työllä.

    VALINTA

    CustName kuin Total_Sales_By_Cust,
    summa (tapaus ITEM_TYPE kun "Computer" sitten Item_Amount pää) Computer,
    summa (tapaus ITEM_TYPE kun Monitorin sitten Item_Amount lopussa) kuin Monitor,
    summa (tapaus ITEM_TYPE kun "Ohjelmistot" sittenItem_Amount lopussa) kuin ohjelmisto

    alkaen #PivotTestTable
    GROUP BY CustName

    Tämä kysely palauttaa täsmälleen sama tulos joukon edellisen esimerkin ja on vain mieltymys minkä tyyppinen kääntyvät käyttää.

Yleinen virhe pivot-taulukoiden

  • yhteinen virhe luoda pivot-taulukko on luoda liittyä takaisin lähdetaulukkoa.Tämä tuottaa epäluotettavia tuloksia ja sitä tulisi välttää.Tämä esimerkki on ehdottomasti esimerkki siitä, mitä ei tehdä.Tulos tässä näytteessä on sama;mutta tämä näyte ei toimi kaikissa tapauksissa.

    SELECT

    p1.CustName,
    p1.Item_Amount Computer,
    p2.Item_Amount kuten Monitor,
    p3.Item_Amount kuten Software

    alkaen #PivotTestTable P1
    sisäliitos #PivotTestTable p2

    päälle p1.CustName = p2.CustName
    jap2.Item_Type = 'Näyttö'

    sisäliitos #PivotTestTable P3

    päälle p1.CustName = p3.CustName
    ja p3.Item_Type = "Ohjelmistot"

    WHERE p1.Item_Type = "tietokone"

992
0
5
Tietokantaohjelmiston