PostgreSQL

Funkce okna PostgreSQL NTILE

Funkce okna PostgreSQL NTILE
Metody okna v PostgreSQL byly odloženy, aby srovnaly rozdílná data, a jsou nezbytné pro analytické a další případy použití PostgreSQL. Metoda NTILE (), za kterou následuje klauzule OVER v PostgreSQL, je zahozena, aby se rozdělené řádky rozdělily na něco jako řada odstupňovaných segmentů. Vědra nejsou nic jiného než sada seřazených skupin. V celém tomto článku zjistíte, jak pomocí funkce PostgreSQL NTILE () rozdělit seřazené řádky v oddílu na dané číslo seřazených segmentů. Metoda NTILE () přiděluje číslo skupiny každé skupině začínající na 1 v sadě, což ukazuje na sadu, na kterou má řádek své místo.

Syntax:

>> NTILE (bucket) OVER ([PARTITION BY partition expression,…] [ORDET BY sort expression]) [ASC | DESC],…]);

Nejprve se pro pochopení metody NTILE přihlaste z prostředí PostgreSQL. Proto zkuste z aplikací spustit prostředí příkazového řádku PostgreSQL. Chcete-li pracovat na jiném serveru, zadejte název serveru; jinak stiskněte klávesu Enter. Pokud potřebujete cvičit na dříve určené databázi, např.G., Postgres, poté stiskněte klávesu Enter, jinak zadejte název databanky, např.G. 'test'. Chcete-li použít jiný port než 5432, odepište jej; pokud ne, nechte to tak, jak je, a pokračujte stisknutím klávesy Enter. Může vás požádat o zadání uživatelského jména pro případ, že byste chtěli přejít na nové uživatelské jméno. Zadejte uživatelské jméno; jinak stačí stisknout Enter. Nakonec musíte zadat své současné uživatelské heslo, abyste mohli přepínat pomocí příkazového řádku využívajícího konkrétního uživatele. Následně, s účinným zadáváním všech povinných údajů, můžete začít pracovat na NTILE.

Chcete-li začít pracovat na NTILE, musíte vytvořit novou tabulku pomocí příkazu CREATE, pokud ji nemáte. Promyslete si níže zobrazenou tabulku „zaměstnanec“ ve své databázi PostgreSQL s názvem „test“. Tato tabulka obsahuje čtyři sloupce e.G., id, jméno, věk a plat zaměstnance konkrétní společnosti. Každý sloupec má celkem 10 řádků, což znamená 10 záznamů v každém poli sloupce.

>> VYBRAT * OD OD zaměstnance;

Na začátku musíme pochopit jednoduchý koncept načítání záznamů z tabulky pomocí klauzule ORDER BY. Provádíme níže uvedený příkaz SELECT bez použití NTILE ke krátkému rozpracování a pochopení konceptu. Načítáme záznamy pro sloupce; jméno, věk a plat při třídění záznamů ve vzestupném pořadí v poli „věk“. Můžete vidět, že pouze zobrazí záznamy tak, jak jsou uvedeny na obrázku.

>> VYBRAT jméno, věk, plat OD zaměstnance OBJEDNAT PODLE věku;

Použití NTILE () NAD S klauzulí ORDER BY:

Za předpokladu stejné tabulky „zaměstnanec“ začněme v našem příkladu používat klauzuli NTILE () OVER. V tomto příkladu jsme vybrali dva sloupce; jméno a plat, při třídění výsledku ve vzestupném pořadí ve sloupci „plat“. Výsledek bude obsahovat údaje, u nichž je věk zaměstnance vyšší než 24 let. Hodnotu bloku NTILE jsme definovali jako „3“, protože chceme rozdělit řádky do 3 segmentů,.G., 1 až 3. Vidíte, že řádky byly úspěšně rozděleny do 3 stejných kbelíků, které obsahují 3 řádky v každém kbelíku.

>> VYBRAT jméno, plat, DESET (3) NAD (OBJEDNAT PODLE platu) OD ZAMĚSTNANCE KDE věk> '24';

Nyní si vezměme další příklad při použití stejné tabulky „zaměstnanec“. Tentokrát chceme načíst záznamy tří sloupců; jméno, věk a plat pomocí dotazu SELECT v příkazovém prostředí. V klauzuli WHERE došlo k malým změnám. V současné době hledáme záznamy tabulky „zaměstnanec“, kde je věk méně než 27 let, čímž získáme pouze záznamy s věkem nižším než 27. Na druhou stranu se hodnota kbelíku nezmění, protože je opět 3. Při pokusu o uvedený příkaz jsme našli pouze tři záznamy, rovnoměrně rozdělené do 3 kbelíků, jak jsou zobrazeny na obrázku.

>> VYBRAT jméno, věk, plat, DESET (3) NAD (OBJEDNAT PODLE platu) OD zaměstnanců KDE Věk < '27';

Použití NTILE () NAD S ORDER BY a PARTITION BY Clause:

Pojďme si ukázat příklad NTILE () OVER při současném použití klauzulí PARTITION BY a ORDER BY. Předpokládejme, že bude použita nezměněná tabulka „zaměstnanec“ z databáze „test“. V tomto příkladu musíte vybrat tři sloupce; jméno, věk a plat při vzestupném třídění pole „věk“. Kromě toho jsme pomocí klauzule PARTITION BY ve sloupci „plat“ vytvářeli oddíly tabulky podle tohoto sloupce. V tomto konkrétním dotazu nebyla použita žádná konkrétní podmínka, což znamená, že se zobrazí všechny záznamy tabulky „zaměstnanec“. Kbelík NTILE má hodnotu „3“. Po provedení níže uvedeného dotazu uvidíte níže uvedený výsledek. Příčky se dělí podle odlišných hodnot ve sloupci „plat“. Všechny hodnoty sloupce „plat“ jsou odlišné, proto leží v různých oddílech kromě hodnoty „60000“. To znamená, že každý oddíl dostal 1 hodnotu kromě jedné. Poté byly všechny řádky oddílů hodnoceny prostřednictvím segmentů. Pouze jeden kbelík získal 2. místo.

>> VYBRAT jméno, věk, plat, DESET (3) NAD (ROZDĚLENÍ PODLE platu, OBJEDNAT PODLE věku) OD pracovníka;

Vezmeme stejný příklad NTILE () OVER s použitím klauzule PARTITION BY a ORDER BY s klauzulí WHERE. V klauzuli WHERE jsme definovali podmínku, která říká, že jediné načtené záznamy jsou ty, kde je věk zaměstnance méně než 27 let. Získali jsme pouze 3 výsledky se 2 oddíly podle věku a sloupcem „ntile“ s řadami.

>> VYBERTE jméno, věk, plat, DESET (3) NAD (ROZDĚLENÍ PODLE platu, OBJEDNÁVÁNÍ PODLE věku) OD zaměstnanců, KDE < '27';

Závěr:

V této příručce jsme probrali různé příklady funkcí ntile. Můžete je implementovat podle své potřeby.

Hry 5 nejlepších arkádových her pro Linux
5 nejlepších arkádových her pro Linux
V dnešní době jsou počítače vážné stroje používané k hraní her. Pokud nemůžete získat nové vysoké skóre, budete vědět, co tím myslím. V tomto příspěvk...
Hry Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 vydané minulý měsíc, je šestým vývojovým vydáním v 1.13.série x a přináší řadu vylepšení, zejména do uživatelského rozhraní,...
Hry Jak nainstalovat League Of Legends na Ubuntu 14.04
Jak nainstalovat League Of Legends na Ubuntu 14.04
Pokud jste fanouškem League of Legends, pak je to pro vás příležitost otestovat běh League of Legends. Všimněte si, že LOL je podporován na PlayOnLinu...