„PostgreSQL“

Lango funkcija „PostgreSQL NTILE“

Lango funkcija „PostgreSQL NTILE“
Langų metodai „PostgreSQL“ buvo pašalinti, siekiant sutapatinti skirtingus duomenis ir yra būtini analitiniams ir kitiems „PostgreSQL“ naudojimo atvejams. NTILE () metodas, po kurio PostgreSQL taikoma sąlyga OVER, atmetamas, kad būtų galima padalyti organizuotas eilutes į panašias į klasifikuotų grupių serijas. Kibirai yra ne kas kita, kaip reitinguotų grupių rinkinys. Šiame straipsnyje jūs sužinosite, kaip skaidyti rūšiuojamas eilutes skaidinyje į tam tikrą skaičių reitinguotų segmentų, naudojant funkciją „PostgreSQL NTILE“ (). NTILE () metodas priskiria segmento numerį kiekvienai grupei, prasidedančiai nuo 1 rinkinio, parodydamas rinkinį, kuriam skirta eilutė.

Sintaksė:

>> NTILE (segmentai) PER ([PARTITION BY partition expression,…] [ORDET BY sort expressity]) [ASC | DESC],…]);

Visų pirma, norėdami suprasti NTILE metodą, prisijunkite iš „PostgreSQL“ apvalkalo. Todėl pabandykite iš programų paleisti „PostgreSQL“ komandinės eilutės apvalkalą. Norėdami dirbti kitame serveryje, įveskite serverio pavadinimą; priešingu atveju paspauskite Enter. Jei reikia praktikuotis anksčiau paskirtoje duomenų bazėje, el.g., „Postgres“, tada paspauskite „Enter“ arba kitaip, užrašykite duomenų banko pavadinimą, pvz.g. „testas“. Norėdami naudoti kitą nei 5432 prievadą, užrašykite jį; jei ne, palikite jį tokį, koks yra, ir paspauskite Enter, kad galėtumėte tęsti. Ji gali paprašyti įvesti vartotojo vardą, jei jums reikės pakeisti naują vartotojo vardą. Įveskite vartotojo vardą; kitaip, tiesiog paspauskite Enter. Galiausiai turite įvesti dabartinį vartotojo slaptažodį, kad perjungtumėte naudodami komandų eilutę, naudodami tą konkretų vartotoją kaip apačioje. Po veiksmingų visų privalomų duomenų įvedimo galite pradėti dirbti su NTILE.

Norėdami pradėti dirbti su NTILE, turite sukurti naują lentelę naudodami komandą CREATE, jei jos neturite. Apsvarstykite žemiau pateiktą lentelę „darbuotojas“ savo „PostgreSQL“ duomenų bazėje, pavadintą „testas“. Šioje lentelėje yra keturi stulpeliai e.g., konkrečios įmonės darbuotojo tapatybė, vardas, pavardė, amžius ir atlyginimas. Kiekviename stulpelyje iš viso yra 10 eilučių, o tai reiškia 10 įrašų kiekviename stulpelio lauke.

>> PASIRINKTI * IŠ darbuotojo;

Pradžioje turime suprasti paprastą įrašų gavimo iš lentelės sampratą, naudojant sąlygą ORDER BY. Mes vykdėme žemiau esančią komandą SELECT nenaudodami NTILE, kad trumpai suprastume ir suprastume šią koncepciją. Gauname stulpelių įrašus; vardas, amžius ir atlyginimas rūšiuojant įrašus lauko „amžius“ didėjimo tvarka. Matote, kad jame bus rodomi tik paveikslėlyje pateikti įrašai.

>> PASIRINKITE vardą, amžių, atlyginimą NUO UŽSAKYMO PAGAL amžių;

NTILE () naudojimas per UŽSAKYTI pagal sąlygą:

Darant prielaidą, kad ta pati lentelė yra „darbuotojas“, savo pavyzdyje pradėkime naudoti sąlygą NTILE () OVER. Šiame pavyzdyje mes pasirinkome du stulpelius; vardas ir atlyginimas, rūšiuojant rezultatą, susijusį su stulpelio „atlyginimas“ didėjimo tvarka. Rezultate bus duomenys, kai darbuotojo amžius yra didesnis nei 24 metai. „NTILE“ segmento vertę apibrėžėme kaip „3“, nes norime eilutes padalyti į 3 grupes, el.g., Nuo 1 iki 3. Galite pamatyti, kad eilutės buvo sėkmingai padalintos į 3 vienodus segmentus, kiekviename segmente yra 3 eilutės.

>> PASIRINKITE vardą, atlyginimą, NETILE (3) VIRŠIAU (UŽSAKYTI PAGAL atlyginimą) iš darbuotojo, kur amžius> '24';

Paimkime kitą pavyzdį, naudodami tą pačią lentelę „darbuotojas“. Šį kartą norime gauti trijų stulpelių įrašus; vardas, amžius ir atlyginimas naudojant komandų apvalkalo užklausą SELECT. Sąlygoje WHERE yra nedideli pakeitimai. Šiuo metu mes ieškojome lentelės „darbuotojas“, kai amžius yra mažesnis nei 27 metai, įrašų, kurie gaus tik įrašus, kurių amžius yra mažesnis nei 27 metai. Kita vertus, segmento vertė nesikeičia, nes ji vėl yra 3. Bandydami nurodytą komandą radome tik tris įrašus, vienodai suskirstytus į 3 grupes, kaip parodyta paveikslėlyje.

>> PASIRINKITE vardą, amžių, atlyginimą, NETILE (3) VIRŠIAU (UŽSAKYTI PAGAL atlyginimą) IŠ darbuotojo, kur amžius < '27';

NTILE () naudojimas per UŽSAKYMĄ IR Padalijimas pagal sąlygą:

Turėkime NTILE () OVER pavyzdį, tuo pačiu metu naudodami sakinius „PARTITION BY“ ir „ORDER BY“. Tarkime, kad bus naudojama nepakitusi lentelė „darbuotojas“ iš duomenų bazės „testas“. Šiame pavyzdyje turite pasirinkti tris stulpelius; vardas, amžius ir atlyginimas, rūšiuojant didėjančiu būdu „amžius“. Be to, mes naudojome sąlygą PARTITION BY stulpelyje „atlyginimas“, kad sudarytume lentelės skaidinius pagal šį stulpelį. Šioje konkrečioje užklausoje nebuvo naudojama jokia konkreti sąlyga, o tai reiškia, kad bus rodomi visi lentelės „darbuotojas“ įrašai. NTILE kaušo vertė yra „3“. Vykdydami žemiau nurodytą užklausą pamatysite žemiau pateiktą rezultatą. Pertvaros atliekamos pagal atskiras „atlyginimo“ stulpelio vertes. Visos stulpelio „darbo užmokestis“ reikšmės yra skirtingos, todėl jis yra skirtinguose skirsniuose, išskyrus vertę „60000“. Tai reiškia, kad kiekvienas skaidinys gavo 1 vertę, išskyrus vieną. Po to visos skaidinio eilės buvo suskirstytos per kibirus. Tik vienas kibiras gavo II rangą.

>> PASIRINKITE vardą, amžių, atlyginimą, NETILE (3) PAGAL (PASKIRSTYMAS PAGAL ALGĄ, UŽSAKYMAS PAGAL amžių) NUO darbuotojo;

Taikant tą patį NTILE () OVER pavyzdį, naudojant sąlygą „PARTITION BY“ ir „ORDER BY“ su sąlyga WHERE. Sąlygoje WHERE mes apibrėžėme sąlygą, kuri sako, kad vieninteliai įrašai, kurie bus gauti, yra tada, kai darbuotojo amžius yra mažesnis nei 27 metai. Mes gavome tik 3 rezultatus, turėdami 2 skaidinius pagal amžių ir „ntile“ stulpelį su rangais.

>> PASIRINKITE vardą, amžių, atlyginimą, NETILE (3) PAGAL (PASKIRSTYMAS PAGAL ALGĄ, UŽSAKYMĄ PAGAL amžių) IŠ darbuotojo KUR amžius < '27';

Išvada:

Šiame vadove aptarėme skirtingus ntilo funkcijų pavyzdžius. Galite juos įgyvendinti pagal savo būtinybę.

„HD Remastered“ žaidimai, skirti „Linux“, kurie niekada anksčiau nebuvo išleisti „Linux“
Daugelis žaidimų kūrėjų ir leidėjų siūlo senų žaidimų HD remasterį, kad prailgintų franšizės laiką. Prašome gerbėjų, prašančių suderinamumo su šiuolai...
Kaip naudoti „AutoKey“, norint automatizuoti „Linux“ žaidimus
„AutoKey“ yra darbalaukio automatizavimo įrankis, skirtas „Linux“ ir „X11“, užprogramuotas „Python 3“, „GTK“ ir „Qt“. Naudodami scenarijų ir „MACRO“ f...
Kaip parodyti FPS skaitiklį „Linux“ žaidimuose
„Linux“ žaidimai gavo didelį postūmį, kai „Valve“ paskelbė „Linux“ palaikymą „Steam“ klientui ir jų žaidimams 2012 m. Nuo tada daugelis AAA ir indie ž...