PostgreSQL

Funkcija okna PostgreSQL NTILE

Funkcija okna PostgreSQL NTILE
Metode oken v PostgreSQL so bile izločene za enačenje različnih podatkov in so bistvene za analitične in druge primere uporabe PostgreSQL. Metoda NTILE (), ki ji sledi stavek OVER v PostgreSQL, se zavrže, da se organizirane vrstice razdelijo v nekoliko podobne vrste razvrščenih vedrov. Segmenti niso nič drugega kot nabor uvrščenih skupin. V tem članku boste odkrili, kako razvrščene vrstice v particiji razdelite na določeno sliko uvrščenih segmentov s pomočjo funkcije PostgreSQL NTILE (). Metoda NTILE () dodeli številko segmenta vsaki skupini, ki se začne na 1 v nizu, in prikaže niz, kateremu je vrstica namenjena.

Sintaksa:

>> NTILE (vedra) NAD ([RAZDELITEV PO izrazu particije,…] [NAROČI PO izrazu razvrščanja]) [ASC | DESC],…]);

Najprej se za razumevanje metode NTILE prijavite iz lupine PostgreSQL. Zato poskusite iz aplikacij zagnati lupino ukazne vrstice PostgreSQL. Če želite delati na drugem strežniku, vnesite ime strežnika; v nasprotnem primeru pritisnite Enter. Če morate vaditi v predhodno določeni zbirki podatkov, npr.g., Postgres, nato pritisnite Enter ali pa vpišite naslov podatkovne banke, npr.g. 'test'. Če želite uporabiti vrata, ki niso 5432, jih vpišite; v nasprotnem primeru pustite, kot je, in pritisnite Enter, da nadaljujete. Od vas bo morda zahteval, da vnesete uporabniško ime, če boste morali preusmeriti na novo uporabniško ime. Vnesite uporabniško ime; sicer pritisnite Enter. Nazadnje morate vnesti svoje trenutno uporabniško geslo, da preklopite z uporabo ukazne vrstice z uporabo tega uporabnika kot spodaj. Nato lahko z učinkovitimi vnosi vseh obveznih podatkov začnete delati na NTILE.

Če želite začeti delati na NTILE, morate z ukazom CREATE ustvariti novo tabelo, če je nimate. Preglejte spodnjo tabelo "zaposleni" v bazi podatkov PostgreSQL, imenovano "test". Ta tabela vsebuje štiri stolpce e.g., osebno ime, ime, starost in plača zaposlenega v določenem podjetju. Vsak stolpec ima skupaj 10 vrstic, kar pomeni 10 zapisov v vsakem polju stolpca.

>> IZBERI * OD zaposlenega;

Na začetku moramo razumeti preprost koncept pridobivanja zapisov iz tabele s pomočjo stavka ORDER BY. Izvajali smo spodnji ukaz SELECT, ne da bi NTILE na kratko izdelali in razumeli koncept. Pridobimo zapise za stolpce; ime, starost in plača med razvrščanjem zapisov v naraščajočem vrstnem redu polja "starost". Vidite lahko, da bo prikazal zgolj zapise, kot so predstavljeni na sliki.

>> IZBERITE ime, starost, plačo OD ZAPOSLENEGA NAROČI PO STAROSTI;

Uporaba NTILE () OVER z določbo ORDER BY:

Ob predpostavki iste tabele "zaposleni", začnimo uporabljati stavek NTILE () OVER v našem primeru. V tem primeru smo izbrali dva stolpca; ime in plača, medtem ko je razvrščen rezultat, povezan z naraščajočim vrstnim redom stolpca "plača". Rezultat bo vseboval podatke, kjer je starost zaposlenega večja od 24 let. Vrednost segmenta NTILE smo opredelili kot "3", ker želimo vrstice razdeliti na 3 vedra, e.g., 1 do 3. Vidite lahko, da so bile vrstice uspešno razdeljene na 3 enake vedra, ki vsebujejo 3 vrstice v vsakem vedru.

>> IZBERITE ime, plačo, NTILE (3) NAD (NAROČI PO plači) Fromemloyee WHERE starost> '24';

Zdaj pa vzemimo še en primer, medtem ko uporabljamo isto tabelo "zaposleni". Tokrat želimo pridobiti zapise treh stolpcev; ime, starost in plačo z uporabo poizvedbe SELECT v ukazni lupini. Klavzula WHERE je nekoliko spremenjena. Trenutno iščemo evidence tabele "zaposleni", kjer je starost manjša od 27 let, kar bo omogočilo le evidence, stare manj kot 27 let. Po drugi strani pa se vrednost segmenta ne spreminja, saj je spet 3. Pri poskusu navedenega ukaza smo našli le tri zapise, ki so enakomerno razdeljeni v 3 vedra, kot je prikazano na sliki.

>> IZBERITE ime, starost, plačo, NTILE (3) PREKO (NAROČI PO plači) OD zaposlenega KJE starost < '27';

Uporaba NTILE () NAD POGLAVJE NAROČILO IN RAZDELITEV PO:

Imejmo primer NTILE () OVER, medtem ko hkrati uporabljata klavzuli PARTITION BY in ORDER BY. Recimo, da bo uporabljena nespremenjena tabela "zaposleni" iz "testa" baze podatkov. V tem primeru morate izbrati tri stolpce; ime, starost in plača, pri razvrščanju po naraščajočem načinu polja "starost". Poleg tega smo za klavzulo tabele v skladu s tem stolpcem uporabljali klavzulo PARTITION BY v stolpcu »plača«. V tej poizvedbi ni bil uporabljen noben poseben pogoj, kar pomeni, da bodo prikazani vsi zapisi tabele "zaposleni". Vrednost NTILE ima vrednost "3". Pri izvedbi spodnje poizvedbe boste videli spodnji rezultat. Predelne stene se izvedejo v skladu z različnimi vrednostmi stolpca "plača". Vse vrednosti stolpca »plača« so različne, zato leži v različnih particijah, razen vrednosti »60000«. To pomeni, da je vsaka particija dobila 1 vrednost, razen ene. Po tem so se vse particijske vrstice razvrstile skozi vedra. Samo eno vedro je dobilo 2. mesto.

>> IZBERITE ime, starost, plačo, NTILE (3) PREKO (RAZDELITEV PO PLAČI, NAROČILO PO STAROSTI) OD zaposlenega;

Če vzamemo isti primer NTILE () OVER z uporabo klavzule PARTITION BY in ORDER BY s klavzulo WHERE. V klavzuli WHERE smo opredelili pogoj, ki pravi, da bodo edini zapisi, ki bodo pridobljeni, tisti, kjer je starost zaposlenega manjša od 27 let. Dobili smo samo 3 rezultate z dvema particijama glede na starost in "ntile" stolpec z uvrstitvami.

>> IZBERITE ime, starost, plačo, NTILE (3) PREKO (RAZDELITEV PO PLAČI, NAROČILO PO STAROSTI) OD ZAPOSLENEGA < '27';

Zaključek:

V tem priročniku smo obravnavali različne primere funkcij. Izvedete jih lahko po svoji potrebi.

Uporabna orodja za igralce Linux
Če radi igrate igre na Linuxu, obstaja verjetnost, da ste za izboljšanje igralne izkušnje uporabljali aplikacije in pripomočke, kot so Wine, Lutris in...
HD Remastered Games za Linux, ki prej še niso izdale Linuxa
Mnogi razvijalci iger in založniki pripravijo HD remaster starih iger, da podaljšajo življenjsko dobo franšize, zato oboževalci zahtevajo združljivost...
Kako uporabljati AutoKey za avtomatizacijo iger Linux
AutoKey je namizni pripomoček za avtomatizacijo za Linux in X11, programiran v Python 3, GTK in Qt. Z njegovo funkcijo skriptiranja in MACRO lahko avt...