Funzione ntile SQL Server

Funzione ntile SQL Server
In questo articolo, capirai come lavorare con la funzione Ntile () in SQL Server. La funzione ntile () consente di distribuire le righe in una partizione ordinata in gruppi numerati specifici.

Funzione sql server ntile ()

La funzione ntile () fa parte delle funzioni di analisi del server SQL che consente di assegnare le righe in una partizione ordinata in un numero specificato di gruppi uguali. Ogni gruppo è numerato a partire da 1 in poi. La funzione assegna quindi un numero che indica il gruppo in cui si adatta la riga.

Quanto segue rappresenta la sintassi della funzione:

Ntile (integer_expression) over ([])

Gli argomenti sono espressi come mostrato di seguito:

  1. integer_expression - questo definisce il numero di gruppi in cui le partizioni sono divise.
  2. partitition_by_clause - Questa clausola divide il risultato set in varie partizioni in cui viene applicata la funzione ntile ().
  3. Order_by_clause - Questa clausola definisce l'ordine in cui i valori della funzione ntile sono allocati alle righe in una partizione.

La funzione restituisce il tipo di bigint.

Esempio di utilizzo

L'esempio seguente dimostra l'utilizzo della funzione ntile () su un set di risultati.

Supponiamo di avere una tabella con dati di esempio come mostrato:

Drop database se esiste l'inventario;
Creare inventario del database;
Utilizzare l'inventario;
Drop tabella se esistono prodotti;
Crea prodotti da tavolo
(
Id Int Identity Key Primary non null,
Product_Name Varchar (100),
Produttore Varchar (50),
quantità int non null,
Prezzo int predefinito 0,
in_stock bit
);
Insert in Products (Product_Name, produttore, quantità, prezzo, in_stock)
Valori ('Apple iPad Air - 2022', 'Apple', 100, 569.99, 1),
("Samsung Galaxy Z Flip 4 - 2022", "Samsung", 302, 1569.00, 1),
("Sony PlayStation 5 - 2020", "Sony", 500, 499.99, 1),
('Samsung Galaxy Watch -5 Pro - 2022', 'Samsung', 600, 209 / .99, 1),
("Apple Watch Series 6 - 2022", "Apple", 459, 379.90, 1),
("Apple AirPods Pro - 2022", "Apple", 200, 199.99, 1),
('55 "Classe S95B OLED 4K Smart TV - 2021 ',' Samsung ', 900, 1999.90, 1),
("Schermata di gioco curvo Mini -LED di Odyssey Ark - 2021", "Samsung", 50, 2999.90, 1);

Possiamo dividere i dati nella tabella in quattro gruppi come mostrato nella query seguente:

selezionare Product_name, produttore, prezzo, ntile (4) su (ordine per produttore) gruppi
dai prodotti;

La tabella di output è come mostrata:

Possiamo anche dividere i dati in vari gruppi e applicare la funzione ntile () a ciascuna divisione. Ad esempio, la query di seguito divide i dati in base al produttore.

selezionare Product_name, produttore, prezzo, ntile (1) su (partizione per ordine del produttore per produttore) gruppi
dai prodotti;

Risultato:

Conclusione

In questo articolo, hai imparato le basi del lavoro con la funzione Ntile () in SQL Server per distribuire le righe di una partizione ordinata in vari set.