SQL Server: PIVOT-lauseke


Esimerkki

PIVOT-lausetta voidaan käyttää SQL Serverissä (Transact-SQL).

Katsotaanpa esimerkki. Jos meillä olisi työntekijöiden taulukko, joka sisälsi seuraavat tiedot:

työntekijän_numero sukunimi etunimi palkka osaston_id
12009 Sutherland Barbara 54000 45
34974 Yates Fred 80000 45
34987 Erickson Neil 42000 45
45001 Parker Sally 57500 30
75623 Gates Steve 65000 30

Ja suoritimme seuraavan SQL-käskyn, joka luo ristitaulukon kyselyssä PIVOT-lausekkeen avulla:

Se palauttaisi seuraavan tuloksen:

TotalSalaryByDept 30 45
TotalSalary 122500 176000

Tämä esimerkki luo pivot-taulukon, jossa näkyy osastojen_id 30 ja osastojen_id 45 kokonaispalkka. Tulokset näytetään yhdellä rivillä kahden osaston ilmestyessä kukin omassa sarakkeessaan.

Erotetaan nyt PIVOT-lauseke ja selitetään, miten se toimi.

Määritä sarakkeet taulukoidenvälisissä tuloksissa

Ensinnäkin haluamme määrittää, mitkä kentät sisällytetään ristitaulukkoihin. Tässä esimerkissä haluamme sisällyttää kirjaimellisen arvon ”TotalSalary” pivot-taulukon ensimmäiseksi sarakkeeksi. Ja haluamme luoda yhden sarakkeen osastolle 30 ja toisen sarakkeen osastolle 45. Tämä antaa meille 3 saraketta pivot-taulukkoon.

SELECT "TotalSalary" AS TotalSalaryByDept, , 

Määritä lähde Taulukon tiedot

Seuraavaksi meidän on määritettävä SELECT-käsky, joka palauttaa pivot-taulukon lähdetiedot.

Tässä esimerkissä haluamme palauttaa dept_id- ja palkkiarvot työntekijöiden taulukko:

(SELECT dept_id, salary FROM employees) AS SourceTable

Sinun on määritettävä alias lähdekyselylle. Tässä esimerkissä kysely on aliaksistettu SourceTable-muotoon.

Määritä aggregaattitoiminto

Seuraavaksi meidän on määritettävä, mitä aggregaattitoimintoa käytetään taulukkojen välisen kyselyn luomisessa. Voit käyttää mitä tahansa aggregaatteja, kuten SUM, COUNT, MIN, MAX tai AVG.

Tässä esimerkissä aiomme käyttää SUM-toimintoa. Tämä laskee yhteen palkkojen arvot:

PIVOT(SUM(salary)

Määritä pivot-arvot

Lopuksi meidän on määritettävä, mitkä pivot-arvot sisällytetään tulokseemme . Näitä käytetään sarakeotsikoina ristitaulukkoa koskevassa kyselyssä.

Tässä esimerkissä aiomme palauttaa vain dept_id-arvot 30 ja 45. Näistä arvoista tulee sarakkeen otsikkoja pivotissamme. pöytä. Huomaa myös, että nämä arvot ovat rajallinen luettelo dept_id-arvoista eivätkä välttämättä sisällä kaikkia mahdollisia arvoja.

FOR dept_id IN (, )

Nyt kun koomme sen kaikki yhteen, saamme seuraavan pivot-taulukon:

TotalSalaryByDept 30 45
TotalSalary 122500 176000

Leave a Reply

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *