PostgreSQL

Loga funkcija PostgreSQL NTILE

Loga funkcija PostgreSQL NTILE
Logu metodes PostgreSQL ir atceltas, lai vienādotu atšķirīgos datus, un tās ir būtiskas analītiskiem un citiem PostgreSQL lietošanas gadījumiem. Metode NTILE (), kurai seko klauzula OVER PostgreSQL, tiek noraidīta, lai sadalītu organizētās rindas nedaudz līdzīgā pakāpju grupu sērijā. Spaiņi nav nekas vairāk kā ierindotu grupu kopums. Šajā rakstā jūs uzzināsiet, kā sadalīt šķirošās rindas nodalījumā noteiktā ranžētu segmentu skaitlī, izmantojot funkciju PostgreSQL NTILE (). Metode NTILE () katrai grupai, kas sākas ar 1. kopu, piešķir kopas numuru, parādot kopu, kurai rinda ir sava vieta.

Sintakse:

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

Pirmkārt, lai saprastu NTILE metodi, piesakieties no PostgreSQL čaulas. Tāpēc mēģiniet no lietojumprogrammām palaist PostgreSQL komandrindas apvalku. Lai strādātu ar citu serveri, ievadiet servera nosaukumu; pretējā gadījumā nospiediet taustiņu Enter. Ja jums ir nepieciešams praktizēt iepriekš izraudzītajā datu bāzē, e.g., Postgres, pēc tam nospiediet taustiņu Enter vai arī ievadiet datu bankas nosaukumu, piemēram,.g. 'pārbaude'. Lai izmantotu portu, kas nav 5432, ierakstiet to; ja nē, atstājiet to tādu, kāds tas ir, un nospiediet taustiņu Enter, lai turpinātu. Tā var pieprasīt ievadīt lietotājvārdu, ja jums ir jāpāriet uz jaunu lietotājvārdu. Ievadiet lietotājvārdu; citādi vienkārši nospiediet taustiņu Enter. Visbeidzot, jums jāievieto pašreizējā lietotāja parole, lai pārslēgtos, izmantojot komandrindu, izmantojot šo konkrēto lietotāju. Pēc efektīvu visu obligāto datu ievadīšanas jūs varat sākt strādāt ar NTILE.

Lai sāktu strādāt ar NTILE, jums jāizveido jauna tabula, izmantojot komandu CREATE, ja jums tādas nav. Padomājiet ar zemāk redzamo tabulu “darbinieks” savā PostgreSQL datu bāzē ar nosaukumu “tests”. Šajā tabulā ir četras kolonnas e.g., konkrēta uzņēmuma darbinieka ID, vārds, vecums un alga. Katrā kolonnā kopā ir 10 rindas, kas nozīmē 10 ierakstus katrā kolonnas laukā.

>> SELECT * NO darbinieka;

Sākumā mums ir jāsaprot vienkāršā koncepcija par ierakstu ienešanu no tabulas, izmantojot klauzulu ORDER BY. Mēs esam izpildījuši zemāk esošo komandu SELECT, neizmantojot NTILE, lai īsi izstrādātu un saprastu koncepciju. Mēs izgūstam kolonnu ierakstus; vārds, vecums un alga, kārtojot ierakstus lauka “vecums” augošā secībā. Var redzēt, ka tas tikai parādīs ierakstus, kā parādīts attēlā.

>> IZVĒLIES vārdu, vecumu, algu NO PASŪTĪTĀJA PĒC vecuma

NTILE () OVER izmantošana ar KĀRTĪBU pēc klauzulas:

Pieņemot to pašu tabulu “darbinieks”, sāksim izmantot NTILE () OVER klauzulu mūsu piemērā. Šajā piemērā mēs atlasījām divas kolonnas; nosaukums un alga, kārtojot rezultātu, kas saistīts ar kolonnas “alga” augošo secību. Rezultātā tiks iekļauti dati, ja darbinieka vecums pārsniedz 24 gadus. Mēs esam definējuši NTILE segmenta vērtību kā “3”, jo mēs vēlamies sadalīt rindas 3 grupās, e.g., 1 līdz 3. Var redzēt, ka rindas ir veiksmīgi sadalītas 3 vienādos segmentos, katrā katrā segmentā ir 3 rindas.

>> IZVĒLIES vārdu, algu, NETILĒJUMU (3) VIRS (PASŪTĪT PĒC algas) NO darbinieka KUR vecums> '24';

Ņemsim vēl vienu piemēru, lietojot to pašu tabulu “darbinieks”. Šoreiz mēs vēlamies ielādēt trīs kolonnu ierakstus; nosaukums, vecums un alga, izmantojot komandu čaulā esošo vaicājumu SELECT. Klauzulā WHERE ir nelielas izmaiņas. Pašlaik mēs esam meklējuši tabulas “darbinieks”, kurā vecums ir mazāks par 27 gadiem, ierakstus, kuri iegūs tikai tos ierakstus, kuru vecums ir mazāks par 27 gadiem. No otras puses, kopas vērtība nemainās, jo tā atkal ir 3. Izmēģinot norādīto komandu, mēs esam atraduši tikai trīs ierakstus, kas vienādi sadalīti 3 spaiņos, kā parādīts attēlā.

>> IZVĒLIES vārdu, vecumu, algu, NETILES (3) PĀRĒJO (PASŪTĪT PĒC algas) NO darbinieka KUR vecums < '27';

NTILE () OVER izmantošana ar klauzulu PASŪTĪT un SADALĪT:

Pieņemsim NTILE () OVER piemēru, vienlaikus izmantojot klauzulas PARTITION BY un ORDER BY. Pieņemsim, ka tiks izmantota nemainītā tabula “darbinieks” no datu bāzes “testa”. Šajā piemērā jums jāizvēlas trīs kolonnas; nosaukums, vecums un alga, šķirojot augošā veidā laukā “vecums”. Turklāt kolonnā “alga” mēs izmantojām klauzulu PARTITION BY, lai izveidotu tabulas starpsienas atbilstoši šai kolonnai. Šajā konkrētajā vaicājumā nav izmantots īpašs nosacījums, kas nozīmē, ka tiks parādīti visi tabulas “darbinieks” ieraksti. NTILE kausa vērtība ir “3”. Veicot zemāk norādīto vaicājumu, redzēsit zemāk redzamo rezultātu. Starpsienas tiek veiktas atbilstoši kolonnas “alga” atšķirīgajām vērtībām. Visas slejas “alga” vērtības ir atšķirīgas, tāpēc tās atrodas dažādos nodalījumos, izņemot vērtību “60000”. Tas nozīmē, ka katram nodalījumam ir 1 vērtība, izņemot vienu. Pēc tam visas nodalījuma rindas tika sarindotas caur spaiņiem. Tikai viens spainis ieguva 2. pakāpi.

>> IZVĒLIES vārdu, vecumu, algu, NETILES (3) PĀR (SADALĪJUMS PĒC ALGAS, PASŪTĪJUMS PĒC vecuma) NO darbinieka;

Izmantojot to pašu NTILE () OVER piemēru, izmantojot klauzulu PARTITION BY un ORDER BY ar klauzulu WHERE. Klauzulā WHERE mēs esam definējuši nosacījumu, kurā teikts, ka vienīgie iegūtie ieraksti ir tādi, kuros darbinieka vecums ir mazāks par 27 gadiem. Mēs saņēmām tikai 3 rezultātus ar 2 starpsienām atbilstoši vecumam un “ntile” kolonnai ar rangiem.

>> IZVĒLIES vārdu, vecumu, algu, NETILĒJUMU (3) VĒL (SADALĪJUMS PĒC algas, PASŪTĪJUMS PĒC vecuma) NO darbinieka KUR vecums < '27';

Secinājums:

Šajā rokasgrāmatā mēs esam apsprieduši dažādus ntile funkciju piemērus. Jūs varat tos ieviest atbilstoši savām vajadzībām.

Komerciālo spēļu dzinēju atvērtā koda porti
Bezmaksas, atvērtā koda un starpplatformu spēļu dzinēju atpūtu var izmantot, lai spēlētu vecos, kā arī dažus no diezgan nesenajiem spēļu nosaukumiem. ...
Labākās komandrindas spēles Linux
Komandrinda nav tikai lielākais sabiedrotais, lietojot Linux, bet tā var būt arī izklaides avots, jo to var izmantot, lai spēlētu daudzas jautras spēl...
Labākās Linux spēļu gamepad kartēšanas lietotnes
Ja jums patīk spēlēt spēles Linux ar parastu tastatūru, nevis parasto tastatūru un peles ievades sistēmu, jums ir dažas noderīgas lietotnes. Daudzas d...