PostgreSQL

Pivot koos tabelifunktsiooniga / ilma

Pivot koos tabelifunktsiooniga / ilma

Pivot-tabel on võimas vahend andmete hindamiseks, koostamiseks ja ülevaatamiseks, et mustreid ja suundumusi veelgi hõlpsamalt leida. Pivot-tabeleid saab kasutada andmekogumi andmete koondamiseks, sortimiseks, korrastamiseks, ümberkorraldamiseks, rühmitamiseks, kokku või keskmiseks andmekogumite ja sõltuvuste tõeliseks mõistmiseks. Pöördtabeli kasutamine illustratsioonina on lihtsaim viis näidata, kuidas see meetod toimib. PostgreSQL 8.3 käivitati paar aastat tagasi ja uus versioon nimega "tablefunc'lisati. Tablefunc on komponent, mis sisaldab mitmeid meetodeid, mis annavad tabeleid (st mitu rida). Sellel modifikatsioonil on väga laia valikut funktsioone. Nende hulgas on risttabeli meetod, mida kasutatakse pöördtabelite loomiseks. Risttabeli meetod võtab tekstilise argumendi: SQL-i käsk, mis tagastab toored andmed esimesel paigutusel ja tagastab järgmise tabeli tabeli.

Näide liigendtabelist ilma TableFuncita:

PostgreSQL-i abil mooduliga 'tablefunc' töötamise alustamiseks peate proovima luua pöördtabeli ilma selleta. Nii et avame käsurea kest PostgreSQL ja esitame vajaliku serveri, andmebaasi, pordi numbri, kasutajanime ja parooli parameetriväärtused. Jätke need parameetrid tühjaks, kui soovite kasutada vaikimisi valitud parameetreid.

Loome andmebaasi „test” uue tabeli nimega „Test”, kus on mõned väljad, nagu allpool näidatud.

>> CREATE TABLE Test (Id int, nimi varchar (20), sal int, job varchar (20));

Pärast tabeli loomist on aeg tabelisse lisada mõned väärtused, nagu on näidatud allpool olevast päringust.

>> INSERT INTO Test (ID, nimi, sal, töökoht) VÄÄRTUSED (11, 'Aqsa', 45000, 'Writer'), (11, 'Aqsa', 48000, 'Ohvitser'), (11, 'Aqsa', (50000, "arst"), (12, "Raza", 40000, "ohvitser"), (11, "Raza", 60000, "arst"), (12, "Raza", 67000, "ohvitser"), ( 13, "Saeed", 85000, "Kirjanik"), (13, "Saeed", 69000, "Ohvitser"), (13, "Saeed", 90000, "Arst");

Näete, et asjakohased andmed on edukalt sisestatud. Näete, et selles tabelis on rohkem kui üks samade väärtuste ID, nimi ja töö väärtus.

>> SELECT * FROM sisend;

Koostame pöördtabeli, mis võtab tabeli 'Test' kirje kokku alloleva päringu abil. Käsk liidab samad veergude „Id“ ja „nimi“ väärtused ühes reas, võttes samade andmete jaoks veergude „palk“ väärtuste summa vastavalt „Id“ ja „nimi“. See näitab ka seda, mitu korda üks väärtus on konkreetses väärtuste kogumis aset leidnud.

>> SELECT Id, nimi, summa (sal) sal, summa ((töö = 'Arst') :: int) Arst, summa ((töö = 'Kirjanik') :: int) Kirjutaja, summa ((töö = 'Ametnik) ') :: int) "ohvitser" testgrupist ID järgi, nimi;

Näide liigendtabelist koos TableFunciga:

Alustame oma peamise punkti selgitamisest realistlikust vaatepunktist ja seejärel kirjeldame pöördtabeli loomist meile meeldivate sammudega. Nii et kõigepealt peate pöördlaua töötamiseks lisama kolm tabelit. Esimene tabel, mille me loome, on "Meik", mis salvestab teavet meigiga seotud esmatähtsate asjade kohta. Selle tabeli loomiseks proovige käsurea kestas järgmist päringut.

>> LOE TABEL, KUI EI OLE Meik (make_Id int PRIMARY KEY, p_name VARCHAR (100) NOT NULL);

Pärast tabeli 'Makeup' loomist lisame sellele mõned kirjed. 10 tabeli lisamiseks täidame kestas allpool loetletud päringu.

Peame looma teise tabeli nimega „kasutajad”, mis hoiab neid tooteid kasutavate kasutajate arvestust. Selle tabeli loomiseks käivitage kestas allpool toodud päring.

>> LOE TABEL, KUI kasutajaid EI OLE (user_id int PRIMARY KEY, u_name varchar (100) NOT NULL);

Lisasime tabeli „kasutajad” 20 kirjet, nagu on näidatud alloleval pildil.

Meil on veel üks tabel "makeup_user", mis hoiab nii tabeli "Makeup" kui ka "user" vastastikuseid andmeid. Sellel on veel üks väli "hind", mis säästab toote hinda. Tabel on loodud allpool toodud päringu abil.

>> LOE TABEL, KUI POLE OLEMAS makeup_user (ID int PRIMARY KEY, Mid int NOT NULL VIIRED Makeup (make_Id), Uid int NOT NULL VIIRED kasutajad (user_id), hinna kümnendkoht (18,2));

Oleme sellesse tabelisse sisestanud kokku 56 kirjet, nagu pildil näidatud.

Loome vaate, et seda kasutada pöördtabeli loomiseks. Selles vaates kasutatakse kõigi kolme tabeli esmase võtme veeruväärtuste sobitamiseks funktsiooni INNER Join ning toote 'nimi', 'toote_nimi' ja 'kulu' toomine tabelist 'kliendid'

>> CREATE VIEW v_makeup_users AS SELECT c.u_name, lk.p_nimi, tk.hind kasutajatelt c INNER JOIN makeup_user pc ON c.user_id = arvuti.Uid INNER JOIN Meik p ON tk.Keskmine = p.make_Id;

Selle kasutamiseks peate kõigepealt installima paketi tablefunc andmebaasi jaoks, mida soovite kasutada. See pakett on sisseehitatud PostgreSQL 9.1 ja hiljem vabastatakse alltoodud käsu käivitamisega. Pakett tablefunc on teie jaoks nüüd lubatud.

>> LOE LAIENDUS, KUI EI OLE tablefunc;

Pärast laienduse loomist on aeg pöördetabeli loomiseks kasutada funktsiooni Crosstab (). Seega kasutame selleks käsurea kestas järgmist päringut. See päring tõmbab kõigepealt kirjet vastloodud 'Vaade'. Need kirjed järjestatakse ja rühmitatakse veergude 'u_name' ja 'p_name' kasvava järjekorra järgi. Oleme tabelis välja toonud nende meiginimed iga ostetud kliendi jaoks ja ostetud toodete kogumaksumuse. Kõigi ühe kliendi poolt eraldi ostetud toodete kokkuvõtmiseks kasutasime veerus „p_name” operaatorit UNION ALL. See võtab kokku kõik kasutaja ostetud toodete kulud ühes väärtuses.

Meie Pivoti tabel on olnud valmis ja kuvatud pildil. Näete selgelt, et mõned veergude tühikud on iga p_name all tühjad, kuna nad pole seda konkreetset toodet ostnud.

Järeldus:

Oleme nüüd suurepäraselt õppinud, kuidas luua pöördtabel tabelite tulemuste kokkuvõtmiseks koos paketiga Tablefunc ja ilma.

Kursor hüppab või liigub juhuslikult Windows 10-s kirjutamise ajal
Kui leiate, et hiire kursor hüppab või liigub Windowsi sülearvutisse või arvutisse kirjutades automaatselt, juhuslikult, võivad mõned neist soovituste...
Kuidas muuta hiire ja puuteplaatide kerimise suund Windows 10-s ümber
Hiir ja PuuteplaatNeed muudavad arvutamise mitte ainult lihtsaks, vaid ka tõhusamaks ja vähem aeganõudvaks. Me ei kujuta ette elu ilma nende seadmetet...
Kuidas muuta hiirekursori ja kursori suurust, värvi ja skeemi Windows 10-s
Windows 10 hiirekursor ja kursor on operatsioonisüsteemi väga olulised aspektid. Seda võib öelda ka teiste opsüsteemide kohta, nii et tegelikult pole ...