Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programvara
  • Adobe Illustrator
  • animation Software
  • antivirusprogram
  • ljudprogram
  • Säkerhetskopiera data
  • Bränn CD-skivor
  • Bränn DVD
  • Data Compression
  • Database Software
  • Desktop Publishing
  • Desktop Video
  • Digital Video Software
  • Drupal
  • Educational Software
  • Engineering Software
  • Filtillägg Typer
  • Financial Software
  • Freeware , Shareware & Abandonware
  • GIMP
  • Graphics Software
  • Home Recording Software
  • Microsoft Access
  • Microsoft Excel
  • Microsoft Publisher
  • Microsoft Word
  • Open Source Code
  • Andra datorprogram
  • PC-spel
  • Photoshop
  • Portable Document Format
  • PowerPoint
  • presentationsprogram
  • Produktivitet Software
  • quicktime
  • Remote Desktop Management
  • SQL Server
  • Skype
  • Programvara betaversioner
  • Programvara Konsulter
  • Software Development Companies
  • Software Licensing
  • Spreadsheets
  • Skatt förberedelse programvara
  • Utility Software
  • Web Clip Art
  • Windows Media Player
  • Ordbehandlingsprogram
  • * Dator Kunskap >> Programvara >> Database Software >> Content

    Vad är en Pivot tabell i SQL

    ? I SQL är en pivot tabell en uppsättning data som omvandlas från en samling av separata rader till en samling kolumner . I relationsdatabaser , t.ex. Microsoft SQL Server , Oracle och MySQL kan pivottabeller användas för att förenkla omfattande data för att göra det lättare att läsa och förstå . För att skapa en pivottabell är ett aggregat som används mot en uppsättning data för att distribuera flera rader av en enda kolumn till en enda rad med flera kolumner . Detta uttrycks väsentligen resultatet inställd sidled . Sample Data

    för att bättre förstå en pivot tabell , är ett exempel på några försäljningen uppgifter som anges här . Kopiera följande till Microsoft SQL Server Management Studio för att prova exemplen .

    Skapa tabell # PivotTestTable ( CustName varchar ( 8 ) , ITEM_TYPE varchar ( 8 ) , Item_Amount numeriska ( 6,2 ) ) katalog

    infoga i # PivotTestTableselect " Jason " , "dator" , 435.34unionselect " Jason " , "Programvara" , 243.54unionselect ' Jason ' , 'Monitor ' , 158.23unionselect " Alison " , "dator" , 345.89unionselect " Alison " , "Programvara" , 78.78unionselect " Alison " , 'Monitor ' , 123,45 Addera Starta UnPivoted Data

    när temp tabellen , # PivotTestTable , frågas , resultatet är följande .

    CustName ITEM_TYPE Item_Amount -------- -------------------- Alison Computer 345.89Alison Bildskärm 123.45Alison Software 78.78Jason Computer 435.34Jason bildskärm 158.23Jason Software 243,54

    som ni kan se , visar resultatet set två kunder , Alison och Jason , som har köpt tre olika typer av objekt . Det finns sex rader med data för två kunder . Om vi ville se data i en enda rad per kund , skulle vi använda en pivottabell för att uppnå önskat resultat .
    Pivot av pivotfunktion

    Microsoft SQL Server har en pivot -funktion inbyggd i SQL Server . Här är ett exempel med # PivotTestTable uppgifter .

    SELECTCustName som Total_Sales_By_Cust , dator, bildskärm , programvara på ( SELECTCustName , ITEM_TYPE , Item_AmountFROM # PivotTestTable ) aPIVOT ( sum ( Item_Amount ) FOR ITEM_TYPE i ( dator, bildskärm , mjukvara ) ) b på

    Denna fråga återkommer de ursprungliga sex rader svängs in två rader med separata kolumner för varje typ som såldes av objektet . Resultatet som genereras från den här frågan är här :

    Total_Sales_By_Cust Datorskärm Software ------------------- ----------- --------------- Alison 345,89 123,45 78.78Jason 435,34 158,23 243,54
    Pivot genom aggregerad fallprogramsats

    genom att använda ett aggregat funktion ( sUM , AVG , MIN , MAX ) kring ett fall uttalande i en SQL-fråga , kan vi uppnå samma resultat som pivotfunktion med mindre arbete .

    SELECTCustName som Total_Sales_By_Cust , sum ( case ITEM_TYPE när " Dator " och sedan Item_Amount ände ) som Datorer , sum ( case ITEM_TYPE när 'Monitor ' då Item_Amount ände ) som bildskärm , sum ( case ITEM_TYPE när "Programvara" sedan Item_Amount ände ) som programvara på PivotTestTableGROUP # BY CustName

    frågan kommer tillbaka exakt samma resultat som i det tidigare exemplet och är bara en preferens för vilken typ av pivot att använda .
    vanligt misstag med pivottabeller

    en vanlig misstaget att skapa en pivottabell är att skapa en koppling tillbaka till källan bordet . Detta kommer att ge otillförlitliga resultat och bör undvikas . Detta exempel är absolut ett exempel på vad man inte ska göra . Resultatet i detta prov kommer att vara samma , men detta prov inte kommer att fungera i alla fall

    SELECTp1.CustName , p1.Item_Amount som Datorer , p2.Item_Amount som bildskärm , p3.Item_Amount som programvara på # PivotTestTable p1INNER . GÅ # PivotTestTable p2on p1.CustName = p2.CustNameand p2.Item_Type = ' Monitor'INNER GÅ # PivotTestTable p3on p1.CustName = p3.CustNameand p3.Item_Type = ' Software'WHERE p1.Item_Type = ' Computer '

    Addera

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur man gör en Polygraph Maskin
    ·Hur Uppskatta ett totalt Database Size
    ·Hur man gör en Query i Access som utesluter dubbletter…
    ·Hur Design relationsdatabaser
    ·Hur återladdning en Transaktion
    ·Access Database Programming Tutorial
    ·Så här öppnar du ett Räknare i Query
    ·Hur man bränner en ISO- fil till Flash
    ·Hur man skapar en bildkarta för Microsoft
    ·Hur man installerar Tuning Database Engine Advisor
    Utvalda artiklarna
    ·Hur skriver jag ut Quicken Rapporter
    ·Hur Justera teckenstorleken i Perian
    ·Adobe Photoshop CS tutorials
    ·Hur hittar man den ursprungliga låten i iTunes
    ·Hur man gör alla mina tabellkolumner samma storlek
    ·Hur du kan maximera OpenForm i Access 2007
    ·Hur sätter jag upp en VNC -server på Linux
    ·Hur man tar bort arbetsuppgifter från ett Gantt-schema…
    ·Hur du ändrar lagringsutrymme i Sharepoint
    ·Hur skickar jag ett SMS till en Tracfone Från en PC
    Copyright © Dator Kunskap http://www.dator.xyz