PostgreSQL

Funkcia okna PostgreSQL NTILE

Funkcia okna PostgreSQL NTILE
Metódy okna v PostgreSQL boli zrušené kvôli vyrovnaniu rozdielnych údajov a sú nevyhnutné pre analytické a ďalšie prípady použitia PostgreSQL. Metóda NTILE (), za ktorou nasleduje klauzula OVER v PostgreSQL, sa zahodí, aby sa rozdelili usporiadané riadky do podobnej série odstupňovaných segmentov. Vedrá nie sú ničím iným ako súborom klasifikovaných skupín. V tomto článku sa dozviete, ako pomocou funkcie PostgreSQL NTILE () rozdeliť zoradené riadky v oddiele na daný údaj zoradených segmentov. Metóda NTILE () prideľuje číslo vedra každej skupine začínajúcej na 1 v množine, čo demonštruje množinu, v ktorej má riadok svoje miesto.

Syntax:

>> NAD DOBOU (segmenty) NAD ([ROZDELENIE PODĽA výrazu oddielu, ...] [ORDET BY Zoradenie výrazu]) [ASC | DESC], ...]);

Najskôr, aby ste pochopili metódu NTILE, prihláste sa z prostredia PostgreSQL. Preto sa pokúste z aplikácií spustiť shell príkazového riadku PostgreSQL. Ak chcete pracovať na inom serveri, zadajte názov servera; v opačnom prípade stlačte kláves Enter. Ak potrebujete cvičiť na predtým určenej databáze, napr.g., Postgres, potom stlačte kláves Enter alebo inak, vpíšte názov databanky, napr.g. 'test'. Ak chcete použiť iný port ako 5432, prihláste sa; ak nie, nechajte to tak, ako to je, a stlačte Enter, aby ste mohli pokračovať. Môže vás požiadať o zadanie používateľského mena pre prípad, že by ste potrebovali prejsť na nové používateľské meno. Zadajte užívateľské meno; inak stlačte kláves Enter. Nakoniec musíte vložiť svoje súčasné heslo používateľa, aby ste mohli prepínať pomocou príkazového riadku, ktorý využíva konkrétneho používateľa. Následne, s efektívnym zadaním všetkých povinných údajov, môžete začať pracovať na NTILE.

Ak chcete začať pracovať na NTILE, musíte vytvoriť novú tabuľku pomocou príkazu CREATE, ak ju nemáte. Zamyslite sa nad nižšie zobrazenou tabuľkou „zamestnanec“ vo svojej databáze PostgreSQL s názvom „test“. Táto tabuľka obsahuje štyri stĺpce, napr.g., id, meno, vek a plat zamestnanca konkrétnej spoločnosti. Každý stĺpec má celkom 10 riadkov, čo znamená 10 záznamov v každom poli stĺpca.

>> VYBERTE * OD zamestnanca;

Na začiatku musíme pochopiť jednoduchý koncept načítania záznamov z tabuľky pomocou klauzuly ORDER BY. Vykonávame nasledujúci príkaz SELECT bez použitia nástroja NTILE na krátke rozpracovanie a pochopenie konceptu. Načítavame záznamy pre stĺpce; meno, vek a plat pri triedení záznamov vo vzostupnom poradí od poľa „vek“. Môžete vidieť, že iba zobrazí záznamy tak, ako sú znázornené na obrázku.

>> VYBERTE meno, vek, plat OD zamestnanca OBJEDNAŤ PODĽA veku;

POUŽITIE NTILE () NAD S klauzulou ORDER BY:

Za predpokladu, že použijeme rovnakú tabuľku „zamestnanec“, začnime v našom príklade používať klauzulu NTILE () OVER. V tomto príklade sme vyberali dva stĺpce; meno a plat, pričom sa triedi výsledok súvisiaci so vzostupným poradím stĺpca „plat“. Výsledok bude obsahovať údaje, ktorých vek zamestnanca je vyšší ako 24 rokov. Definovali sme hodnotu bloku NTILE ako „3“, pretože chceme rozdeliť riadky na 3 segmenty, napr.g., 1 až 3. Vidíte, že riadky boli úspešne rozdelené do 3 rovnakých segmentov, ktoré v každom segmente obsahujú 3 riadky.

>> ZVOLTE meno, plat, DEN (3) NAD (OBJEDNAŤ PODĽA platu) OD Zamestnanca KDE Vek> 24 rokov;

Teraz si vezmime ďalší príklad pri použití rovnakej tabuľky „zamestnanec“. Tentokrát chceme načítať záznamy z troch stĺpcov; meno, vek a plat pomocou príkazu SELECT v príkazovom paneli. V klauzule WHERE sú malé zmeny. V súčasnej dobe hľadáme záznamy tabuľky „zamestnanec“, kde je vek menej ako 27 rokov, ktorá získa iba záznamy, ktoré majú vek menej ako 27 rokov. Na druhej strane nedôjde k zmene hodnoty segmentu, pretože je opäť 3. Pokusom o uvedený príkaz sme našli iba tri záznamy, ktoré sú rovnako rozdelené do 3 segmentov, ako sú zobrazené na obrázku.

>> ZVOLTE meno, vek, plat, DEN (3) NAD (OBJEDNAŤ PODĽA platu) OD zamestnanca KDE vek < '27';

Využitie NTILE () NAD S OBJEDNÁVKOU BY a PARTITION BY klauzulou:

Ukážme si príklad NTILE () OVER pri súčasnom používaní klauzúl PARTITION BY a ORDER BY. Predpokladajme, že sa použije nezmenená tabuľka „zamestnanec“ z databázy „test“. V tomto príklade musíte vybrať tri stĺpce; meno, vek a plat pri vzostupnom triedení poľa „vek“. Okrem toho sme pomocou klauzuly PARTITION BY v stĺpci „plat“ vytvorili oddiely tabuľky podľa tohto stĺpca. V tomto konkrétnom dotaze nebola použitá žiadna konkrétna podmienka, čo znamená, že sa zobrazia všetky záznamy tabuľky „zamestnanec“. Vedierko NTILE má hodnotu „3“. Po vykonaní nižšie uvedeného dotazu uvidíte výsledok uvedený nižšie. Priečky sa robia podľa zreteľných hodnôt stĺpca „plat“. Všetky hodnoty stĺpca „plat“ sú odlišné, preto sa nachádzajú v rôznych oddieloch okrem hodnoty „60000“. To znamená, že každý oddiel dostal 1 hodnotu okrem jednej. Potom boli všetky riadky oddielov zoradené podľa segmentov. Iba jedno vedro získalo 2. miesto.

>> VYBERTE meno, vek, plat, DEN (3) NAD (ROZDELENIE PODĽA platu, OBJEDNÁVANIE PODĽA veku) OD zamestnanca;

Rovnaký príklad spôsobu použitia NTILE () OVER s použitím klauzúl PARTITION BY a ORDER BY s klauzulou WHERE. V klauzule WHERE sme definovali podmienku, ktorá hovorí, že jediné záznamy, ktoré sa načítajú, sú prípady, keď je vek zamestnanca menej ako 27 rokov. Získali sme iba 3 výsledky, ktoré majú 2 oddiely podľa veku a stĺpec „ntile“ s hodnotami.

>> VYBERTE meno, vek, plat, DEN (3) NAD (ROZDELENIE PODĽA platu, OBJEDNÁVANIE PODĽA veku) OD zamestnanca, KDE vek < '27';

Záver:

V tejto príručke sme diskutovali o rôznych príkladoch funkcií ntile. Môžete ich implementovať podľa svojej potreby.

Hry Ako nainštalovať League Of Legends na Ubuntu 14.04
Ako nainštalovať League Of Legends na Ubuntu 14.04
Ak ste fanúšikom League of Legends, potom je to pre vás príležitosť otestovať spustenie League of Legends. Upozorňujeme, že program PlayOnLinux podpor...
Hry Nainštalujte si najnovšiu strategickú hru OpenRA na Ubuntu Linux
Nainštalujte si najnovšiu strategickú hru OpenRA na Ubuntu Linux
OpenRA je herný engine Libre / Free Real Time Strategy, ktorý obnovuje rané hry z Westwoodu, ako napríklad klasické Command & Conquer: Red Alert. Dist...
Hry Nainštalujte si najnovší Dolphin Emulator pre Gamecube a Wii na Linuxe
Nainštalujte si najnovší Dolphin Emulator pre Gamecube a Wii na Linuxe
Emulátor Dolphin vám umožní hrať vybrané hry Gamecube a Wii na osobných počítačoch Linux (PC). Emulátor Dolphin, ktorý je voľne dostupným emulátorom ...