rezumat: în acest tutorial, veți învăța cum să utilizați funcția SQLite NTILE()
pentru a împărți un set de rezultate într-un număr de găleți și a atribui un număr de găleată fiecărui rând.
Introducere în SQLite NTILE() funcția
SQLite NTILE()
funcția este o funcție de fereastră care împarte un set de rezultate ordonate într-un număr de găleți printr-o expresie specificată și atribuie un număr de cupă corespunzător fiecărui rând.
următoarele arată sintaxa funcției NTILE()
:
în această sintaxă:
Expresie
expression
poate fi un număr întreg pozitiv literal sau orice expresie validă care se rezolvă la un număr întreg pozitiv.
funcția NTILE()
atribuie numere de la 1 prin valoarea expression
fiecărui rând. Numărul de rânduri din găleți poate diferi cu cel mult 1. Restul numărului de rânduri împărțite pe găleți este alocat fiecărei găleți, începând cu găleata 1.
de exemplu, dacă aveți 10 rânduri și 4 găleți. Fiecare găleată va avea 2 rânduri. Restul de 10/4 este 2. Deci prima găleată va avea 2 + 1 = 3 rânduri, a doua găleată va avea și 3 rânduri.
următoarea imagine ilustrează ideea:
dacă valoarea expresiei este mai mare decât numărul de rânduri, atunci funcția NTILE()
va umple numărul de găleți egal cu numărul de rânduri. Prin urmare, gălețile rămase vor fi goale.
de exemplu, dacă aveți 10 rânduri și 11 găleți, fiecărui rând i se va atribui un număr de cupă de la 1 la 10. A 11-a găleată nu va avea rând.
observați că nu puteți utiliza o subinterogare sau o funcție de fereastră în expression
.
partiție cu
clauza PARTITION BY
împarte seturile de rezultate în partiții la care se aplică funcția NTILE
.
ORDER BY
clauza ORDER BY
specifică ordinea rândurilor din fiecare partiție la care se aplică NTILE()
.
SQLite NTILE() funcția exemplu
vom folosi tabelul piese din Baza de date eșantion pentru a demonstra NTILE()
funcția:
utilizarea funcției SQLite NTILE () cu ORDER BY example
următoarea instrucțiune folosește funcția NTILE()
pentru a împărți în 4 găleți valorile din coloana Milliseconds
a tabelului tracks
din albumul 1.
coloana Milliseconds
are 10 valori în acest album, astfel încât cele două valori suplimentare, care este restul de 10/4, sunt distribuite găleților 1 și 2, care, prin urmare, au o valoare mai mare decât gălețile 3 sau 4.
aici este ieșirea:
utilizarea funcției SQLite NTILE() cu exemplul PARTITION BY clause
următoarea instrucțiune utilizează funcția NTILE()
pentru a împărți piesele fiecărui album în 3 găleți cu valorile din coloana Bytes
:
următoarea imagine arată ieșirea:
în acest exemplu, clauza PARTITION BY
a distribuit rândurile în partiții sau albume. Clauza ORDER BY
a sortat piesele din fiecare album după dimensiunile lor în octeți. Și funcția NTILE()
a atribuit un număr de cupă fiecărei piese și a resetat numărul cupei pentru fiecare album.
în acest tutorial, ați învățat cum să utilizați funcția SQLite NTILE()
pentru a împărți un set de rezultate într-un număr de găleți și a atribui un număr de cupă fiecărui rând.
- a fost util acest tutorial ?
- nu