SQLite NTILE

samenvatting: in deze tutorial leert u hoe u de SQLite NTILE() functie gebruikt om een resultaat te verdelen in een aantal emmers en aan elke rij een emmernummer toe te wijzen.

Introduction to SQLite NTILE() function

SQLite NTILE() function is een vensterfunctie die een geordend resultaat dat is ingesteld in een aantal emmers deelt door een gespecificeerde expressie en een passend emmernummer aan elke rij toewijst.

het volgende toont de syntaxis van de functie NTILE() :

In deze syntaxis:

expressie

de expression kan een letterlijk positief geheel getal zijn of een geldige uitdrukking die oplost tot een positief geheel getal.

de functie NTILE() kent aan elke rij getallen toe van 1 tot en met de waarde van de expression. Het aantal rijen in emmers kan maximaal 1 verschillen. De rest van het aantal rijen gedeeld door emmers wordt toegewezen aan elke emmer, te beginnen met emmer 1.

bijvoorbeeld als u 10 rijen en 4 emmers hebt. Elke emmer heeft 2 rijen. De rest van 10/4 is 2. Dus de eerste emmer heeft 2 + 1 = 3 rijen, de tweede emmer heeft ook 3 rijen.

de volgende afbeelding illustreert het idee:

als de waarde van de expressie groter is dan het aantal rijen, dan vult de functie NTILE() het aantal emmers gelijk aan het aantal rijen. Daarom zullen de resterende emmers leeg zijn.

als u bijvoorbeeld 10 rijen en 11 emmers hebt, krijgt elke rij een emmernummer toegewezen van 1 tot 10. De 11e emmer zal geen rij hebben.

merk op dat u geen subquery of vensterfunctie kunt gebruiken in de expression.

partitie door

de PARTITION BY clausule verdeelt de resultaatverzamelingen in partities waarop de NTILE functie van toepassing is.

volgorde bij

de ORDER BY clausule specificeert de volgorde van rijen in elke partitie waarop de NTILE() van toepassing is.

SQLite NTILE() functie voorbeeld

we zullen de tracks tabel uit de sample database gebruiken om de NTILE() functie aan te tonen:

gebruik de functie SQLite NTILE () met volgorde van voorbeeld

het volgende statement gebruikt de functie NTILE() om de waarden in de kolom Milliseconds van de tabel tracks uit album 1 in 4 emmers te verdelen.

de kolom Milliseconds heeft 10 waarden in dit album, dus de twee extra waarden, de rest van 10/4, worden verdeeld over emmers 1 en 2, die dus meer waarde hebben dan de emmers 3 of 4.

hier is de output:

de functie SQLite NTILE() gebruiken met partitie door clausule voorbeeld

het volgende commando gebruikt de functie NTILE() om de tracks van elk album in 3 emmers te verdelen door de waarden in de kolom Bytes :

de volgende afbeelding toont de uitvoer:

in dit voorbeeld verdeelde de PARTITION BY clausule de rijen in partities of albums. De ORDER BY clausule gesorteerd de nummers in elk album op hun grootte in bytes. En de functie NTILE() heeft aan elke track een bucket-nummer toegewezen en het bucket-nummer voor elk album opnieuw ingesteld.

in deze tutorial hebt u geleerd hoe u de functie SQLite NTILE() kunt gebruiken om een resultaat in een aantal emmers te verdelen en aan elke rij een emmernummer toe te wijzen.

  • was deze tutorial nuttig ?
  • YesNo

You might also like

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.