Szintaxis:
>> NTILE (vödrök) OVER ([PARTITION BY partition kifejezés,…] [ORDET BY sort kifejezés]) [ASC | DESC],…]);Először is, hogy megértse az NTILE metódust, jelentkezzen be a PostgreSQL héjból. Ezért próbálja meg elindítani a PostgreSQL parancssori héjat az alkalmazásokból. Ha másik kiszolgálón szeretne dolgozni, írja be a kiszolgáló nevét; ellenkező esetben nyomja meg az Enter billentyűt. Ha a korábban kijelölt adatbázisban kell gyakorolnia, pl.g., Postgres, majd nyomja meg az Enter billentyűt, vagy pedig írja be az adatbank címét, pl.g. 'teszt'. Az 5432-től eltérő port használatához írja be azt; ha nem, hagyja úgy, ahogy van, és nyomja meg az Enter billentyűt a folytatáshoz. Felkérheti a felhasználónév megadására, ha új felhasználónévre kell váltania. Írja be a felhasználónevet; másként csak nyomja meg az Enter billentyűt. Végül be kell írnia a jelenlegi felhasználói jelszavát, hogy váltson a parancssor használatával, az adott felhasználót használva alatta. Ezt követően az összes kötelező adat hatékony bevitele után elkezdheti az NTILE-t.
Az NTILE használatának megkezdéséhez létre kell hoznia egy új táblázatot a CREATE paranccsal, ha még nincs ilyen. Gondold végig a PostgreSQL adatbázis „tesztként” megnevezett „alkalmazott” tábláját. Ez a táblázat négy oszlopot tartalmaz e.g., egy adott vállalat alkalmazottjának azonosítója, neve, kora és fizetése. Minden oszlopnak összesen 10 sora van, ami minden oszlopmezőben 10 rekordot jelent.
>> SELECT * FROM alkalmazott;
Először meg kell értenünk a rekordok táblázatból való lekérésének egyszerű fogalmát az ORDER BY záradék segítségével. Az alábbi SELECT parancsot úgy hajtottuk végre, hogy az NTILE-t nem használtuk a koncepció rövid kidolgozásához és megértéséhez. Oszlopok rekordjait lekérjük; név, életkor és fizetés, miközben a rekordokat a „kor” mező növekvő sorrendjében rendezi. Láthatja, hogy pusztán a képen bemutatott rekordokat jeleníti meg.
>> KIVÁLASZTJA a nevét, életkorát, fizetését a munkavállalóból RENDELÉS kor szerint;
Az NTILE () feletti használata RENDELÉSBEN Kötelezettel:
Feltételezve, hogy ugyanazt a táblázatot alkalmazzuk, kezdjük el használni az NTILE () OVER záradékot a példánkban. Ebben a példában kiválasztottuk a két oszlopot; név és fizetés, a „fizetés” oszlop növekvő sorrendjéhez kapcsolódó eredmény rendezése közben. Az eredmény olyan adatokat tartalmaz, amelyekben a munkavállaló életkora meghaladja a 24 évet. Az NTILE vödör értékét „3” -ként definiáltuk, mert a sorokat 3 sávra szeretnénk osztani, e.g., 1-3. Láthatja, hogy a sorokat sikeresen felosztották 3 egyenlő vödörre, amelyek mindegyik vödörben 3 sort tartalmaznak.
>> KIVÁLASZTÁS neve, fizetése, NEM HASZNÁLATA (3) TELJESEBB (MEGRENDELÉS fizetés szerint) A munkavállalótól WHERE életkor> 24 év;
Vegyünk egy másik példát, miközben ugyanazt a táblát használjuk. Ezúttal három oszlop rekordjait akarjuk megszerezni; név, életkor és fizetés a parancssorban található SELECT lekérdezés használatával. A WHERE záradékban enyhe változások vannak. Jelenleg a „munkavállaló” tábla nyilvántartásait keressük, ahol az életkor kevesebb, mint 27 év, és csak akkor kapják meg azokat a nyilvántartásokat, amelyek 27 évnél fiatalabbak. Másrészt a vödörértékben nincs változás, mivel ismét 3. A megadott parancs kipróbálásával csak három rekordot találtunk, egyenlően elosztva 3 vödörre, ahogy a képen látható.
>> KIVÁLASZTJA a nevét, életkorát, fizetését, NEM SZÁMÁT (3) TELJESEBB (fizetés szerint rendezve) az alkalmazótól < '27';
Az NTILE () FELHASZNÁLÁSA RENDELÉSI ÉS FELOSZTÁSI SZABÁLYZATBAN:
Nézzünk egy példát az NTILE () OVER-re, miközben a PARTITION BY és ORDER BY záradékokat egyszerre használjuk. Tegyük fel, hogy az adatbázis „teszt” változatlan tábla „alkalmazott” kerül felhasználásra. Ebben a példában ki kell választania a három oszlopot; név, életkor és fizetés, miközben növekvő módon rendezi a „kor” mezőt. Ezenkívül a PARTICION BY záradékot használtuk a „fizetés” oszlopban, hogy egy oszlopot készítsünk ennek az oszlopnak megfelelően. Nincs konkrét feltétel, amelyet ebben a lekérdezésben használtak, ami azt jelenti, hogy az „alkalmazott” tábla összes rekordja megjelenik. Az NTILE vödör értéke „3”. Az alább megadott lekérdezés végrehajtásakor látni fogja az alábbi eredményt. A partíciókat a „fizetés” oszlop különértékei szerint végzik. A „fizetés” oszlop összes értéke különbözik, ezért különböző partíciókban található, kivéve a „60000” értéket. Ez azt jelenti, hogy minden partíció 1 értéket kapott, egy kivételével. Ezt követően az összes partíciós sor vödrökön keresztül lett rangsorolva. Csak egy vödör kapott 2. helyezést.
>> KIVÁLASZTJA a nevét, életkorát, fizetését, NEM SZÁMÁT (3) TELJESEBB (FELEK SZERZÉS fizetés, RENDELÉS életkor szerint) AZ ALKALMAZÓTÓL;
Ugyanazt az NTILE () OVER példát véve a PARTITION BY és ORDER BY záradékkal, WHERE záradékkal. A WHERE záradékban meghatároztuk azt a feltételt, amely szerint csak akkor lehet beolvasni azokat a nyilvántartásokat, ahol a munkavállaló életkora kevesebb, mint 27 év. Csak 3 eredményt kaptunk, amelyekben 2 korosztály és partíció szerint oszlop oszlott meg.
>> KIVÁLASZTJA a nevét, életkorát, fizetését, NEM SZÁMÁT (3) TELJESEBB (FELEK SZERINTI FEL, RENDELÉS életkor szerint) AZ ALKALMAZOTTTÓL < '27';
Következtetés:
Ebben az útmutatóban különböző példákat tárgyaltunk a ntile függvényekről. Megvalósíthatja őket szükségleteinek megfelelően.