PostgreSQL

Pivot z / brez namizne funkcije

Pivot z / brez namizne funkcije

Vrtilna tabela je močno orodje za ocenjevanje, zbiranje in pregledovanje podatkov za še lažje iskanje vzorcev in trendov. Vrtilne tabele lahko uporabimo za združevanje, razvrščanje, urejanje, preurejanje, združevanje, skupne ali povprečne podatke v naboru podatkov za resnično razumevanje povezav in odvisnosti podatkov. Uporaba vrtilne tabele kot ilustracije je najlažji način prikaza te metode. PostgreSQL 8.3 je bil predstavljen pred nekaj leti in nova različica z imenom 'tablefuncje bil dodan. Tablefunc je komponenta, ki vsebuje več metod, ki dajejo tabele (to je več vrstic). Ta sprememba ima zelo kul nabor funkcij. Med njimi je tudi metoda navzkrižne tabele, ki bo uporabljena za ustvarjanje vrtilnih tabel. Metoda navzkrižne tabele sprejme besedilni argument: ukaz SQL, ki vrne neobdelane podatke v prvi postavitvi in ​​vrne tabelo v naslednji postavitvi.

Primer vrtilne tabele brez funkcije TableFunc:

Če želite začeti delati z vrtenjem PostgreSQL z modulom 'tablefunc', morate poskusiti narediti vrtilno tabelo brez njega. Odprimo lupino ukazne vrstice PostgreSQL in podajmo vrednosti parametrov za zahtevani strežnik, bazo podatkov, številko vrat, uporabniško ime in geslo. Če želite uporabiti privzete izbrane parametre, pustite te parametre prazne.

Ustvarili bomo novo tabelo z imenom "Test" v zbirki podatkov "test" z nekaterimi polji, kot je prikazano spodaj.

>> Test USTVARI TABELO (Id int, ime varchar (20), sal int, opravilo varchar (20));

Po ustvarjanju tabele je čas, da v tabelo vstavite nekaj vrednosti, kot je prikazano iz spodnje poizvedbe.

>> INSERT INTO Test (Id, name, sal, job) VREDNOSTI (11, 'Aqsa', 45000, 'Writer'), (11, 'Aqsa', 48000, 'Officer'), (11, 'Aqsa', 50000, 'Doctor'), (12, 'Raza', 40000, 'Officer'), (11, 'Raza', 60000, 'Doctor'), (12, 'Raza', 67000, 'Officer'), ( 13, 'Saeed', 85000, 'Writer'), (13, 'Saeed', 69000, 'Officer'), (13, 'Saeed', 90000, 'Doctor');

Vidite, da so bili ustrezni podatki uspešno vstavljeni. Opazite, da ima tabela več kot 1 enakih vrednosti za id, ime in opravilo.

>> SELECT * FROM input;

Ustvarimo vrtilno tabelo, ki bo povzela zapis tabele 'Test' z uporabo spodnje poizvedbe. Ukaz združi enake vrednosti stolpca 'Id' in 'name' v ​​eni vrstici, pri čemer vzame vsoto vrednosti stolpca 'pay' za iste podatke v skladu z 'Id' in 'name'. Pove tudi, kolikokrat se je v določenem naboru vrednosti zgodila ena vrednost.

>> SELECT ID, ime, vsota (sal) sal, sum ((job = 'Doctor') :: int) Doctor, sum ((job = 'Writer') :: int) Writer, sum ((job = 'Officer ') :: int) "Oficir" IZ PRESKUSNE SKUPINE PO Id, ime;

Primer vrtilne tabele s funkcijo TableFunc:

Začeli bomo z razlago naše glavne točke z realnega stališča, nato pa bomo v korakih, ki so nam všeč, opisali ustvarjanje vrtilne tabele. Torej, najprej morate dodati tri tabele, da boste lahko delali v vrtišču. Prva tabela, ki jo bomo ustvarili, je 'Ličila', ki bo shranila informacije o bistvenih elementih ličenja. Poskusite spodnjo poizvedbo v lupini ukazne vrstice, da ustvarite to tabelo.

>> USTVARI TABELO, ČE NE OBSTAJA Ličila (make_Id int PRIMARNI KLJUČ, p_name VARCHAR (100) NOT NULL);

Po ustvarjanju tabele 'Ličenje' ji dodamo nekaj zapisov. Izvedli bomo spodnjo poizvedbo v lupini, da bomo v to tabelo dodali 10 zapisov.

Ustvariti moramo novo tabelo z imenom "uporabniki", ki bo hranila evidence uporabnikov, ki uporabljajo te izdelke. Izvedite spodnjo poizvedbo v lupini, da ustvarite to tabelo.

>> USTVARI TABELO, ČE NE OBSTAJA uporabnikov (user_id int PRIMARY KEY, u_name varchar (100) NOT NULL);

Vstavili smo 20 zapisov za tabelo 'uporabniki', kot je prikazano na spodnji sliki.

Imamo še eno tabelo, 'makeup_user', ki bo hranila medsebojne evidence tabele 'Makeup' in 'users'. Ima še eno polje, "cena", ki bo prihranilo ceno izdelka. Tabela je bila ustvarjena z uporabo spodnje poizvedbe.

>> USTVARI TABELO, ČE NE OBSTAJA makeup_user (ID int PRIMARNI KLJUČ, Mid int NOT NULL REFERENC Makeup (make_Id), Uid int NOT NULL REFERENCE uporabniki (user_id), cena decimalna (18,2));

V to tabelo smo vstavili skupaj 56 zapisov, kot je prikazano na sliki.

Ustvarimo pogled naprej, da ga uporabimo za generiranje vrtilne tabele. Ta pogled uporablja INNER Join, da se ujema z vrednostmi stolpcev primarnega ključa vseh treh tabel in iz tabele "kupci" pridobi "ime", "ime_proizvoda" in "stroške" izdelka

>> USTVARI POGLED v_makeup_users KAKO IZBERI c.u_ime, str.ime_p, pc.cena OD uporabnikov c INNER JOIN makeup_user pc ON c.user_id = pc.Uid INNER JOIN Makeup p ON kos.Sredina = str.make_Id;

Če želite to uporabiti, morate najprej namestiti paket tablefunc za bazo podatkov, ki jo želite uporabiti. Ta paket je vgrajen v PostgreSQL 9.1 in kasneje izdan z izvajanjem spodnjega ukaza. Paket tablefunc je za vas zdaj omogočen.

>> USTVARI RAZŠIRITEV, ČE NE OBSTAJA tablefunc;

Po ustvarjanju razširitve je čas, da s pomočjo funkcije Crosstab () ustvarite vrtilno tabelo. Tako bomo v lupini ukazne vrstice uporabili naslednjo poizvedbo. Ta poizvedba najprej pridobi zapis iz novo ustvarjenega »Pogled«. Ti zapisi bodo razvrščeni in razvrščeni po naraščajočem vrstnem redu stolpcev 'u_name' in 'p_name'. V tabeli smo navedli njihovo ime ličil za vsako stranko, ki jo je kupila, in skupne stroške kupljenih izdelkov. V stolpcu 'p_name' smo uporabili operater UNION ALL, ki ločeno sešteje vse izdelke, ki jih je kupila ena stranka. To bo sestavilo vse stroške izdelkov, ki jih kupi uporabnik, v eno vrednost.

Naša vrtilna tabela je pripravljena in prikazana na sliki. Jasno lahko vidite, da so nekateri presledki stolpcev pod vsakim imenom p_ prazni, ker niso kupili določenega izdelka.

Zaključek:

Zdaj smo se izvrstno naučili, kako ustvariti vrtilno tabelo za povzemanje rezultatov tabel z in brez uporabe paketa Tablefunc.

Zaslonska sledilna ploščica in kazalec miške AppyMouse za tablične računalnike Windows
Uporabniki tabličnih računalnikov pogosto zgrešijo miškin kazalec, še posebej kadar običajno uporabljajo prenosne računalnike. Pametni telefoni in tab...
Srednji gumb miške ne deluje v sistemu Windows 10
The srednji gumb miške vam pomaga, da se pomikate po dolgih spletnih straneh in zaslonih z veliko podatkov. Če se to ustavi, boste na koncu uporabili ...
Kako spremeniti levi in ​​desni gumb miške na računalniku z operacijskim sistemom Windows 10
Povsem normalno je, da so vse naprave računalniške miške ergonomsko zasnovane za desničarje. Na voljo pa so miške, ki so posebej zasnovane za levičarj...