SQL Server NTILE() Function
Last Updated :
17 May, 2024
SQL NTILE() function is a window function that distributes rows of an ordered partition into a pre-defined number of roughly equal groups.
NTILE() Function in SQL Server
The NTILE() function in SQL server is used to distribute rows of an ordered partition into a specified number of approximately equal groups, or buckets.
It assigns each group a number_expression ranging from one. NTILE() function assigns a number_expression for every row in a group, to which the row belongs.
Syntax
The NTILE() function syntax is:
NTILE(number_expression) OVER ( [PARTITION BY partition_expression ] ORDER BY sort_expression [ASC | DESC])
Parameters :
- number_expression The number_expression is the integer into which the rows are divided.
- PARTITION BY clause The PARTITION BY is optional, it differs the rows of a result set into partitions where the NTILE() function is used.
- ORDER BY clause The ORDER BY clause defines the order of rows in each partition where the NTILE() is used.
When a number of rows aren't divisible by the number_expression, the NTILE() function results the groups of two sizes with a difference by one. The larger groups always come ahead of the smaller group within the order specified by the ORDER BY within the OVER() clause. Also, when the all of rows are divisible by the number_expression, the function divides evenly the rows among number_expression.
SQL NTILE() Function Example
Let's look at some examples of NTILE() function in SQL Server to understand it better.
First we will create a table named 'geeks_demo'
Query:
CREATE TABLE geeks_demo (
ID INT NOT NULL );
INSERT INTO geeks_demo(ID)
VALUES(1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
Output:
Use NTILE() function to divide above rows into 3 groups
Query:
SELECT ID,
NTILE (3) OVER (
ORDER BY ID
) Group_number
FROM geeks_demo;
Output :
ID | Group_number |
---|
1 | 1 |
2 | 1 |
3 | 1 |
4 | 1 |
5 | 2 |
6 | 2 |
7 | 2 |
8 | 3 |
9 | 3 |
10 | 3 |
Use the NTILE() function to distribute rows into 5 groups
Query:
SELECT ID,
NTILE (5) OVER (
ORDER BY ID
) Group_number
FROM geeks_demo;
Output :
ID | Group_number |
---|
1 | 1 |
2 | 1 |
3 | 2 |
4 | 2 |
5 | 3 |
6 | 3 |
7 | 4 |
8 | 4 |
9 | 5 |
10 | 5 |
Using the NTILE() function without number_expression Example
SELECT ID,
NTILE () OVER (
ORDER BY ID
) Group_number
FROM geeks_demo;
Output: It will throw the below error:
The function 'NTILE' takes exactly 1 argument(s).
Important Points About SQL Server NTILE() Function
- The NTILE() function is a window function that distributes rows of an ordered partition into a specified number of approximately equal groups, or buckets.
- It assigns each group a bucket number starting from one.
- If the total of rows is divisible by the
buckets
, the function divides evenly the rows among buckets. - If the number of rows is not divisible by the
buckets
, the NTILE() function returns groups of two sizes with the difference by one. - Proper indexing on columns used in the
ORDER BY
clause within the OVER()
partition can improve performance when using NTILE() on large datasets - It is useful for creating histograms, analyzing rankings, or dividing data to allow parallel processing.
Similar Reads
SQL Interview Questions Are you preparing for a SQL interview? SQL is a standard database language used for accessing and manipulating data in databases. It stands for Structured Query Language and was developed by IBM in the 1970's, SQL allows us to create, read, update, and delete data with simple yet effective commands.
15+ min read
SQL Tutorial SQL is a Structured query language used to access and manipulate data in databases. SQL stands for Structured Query Language. We can create, update, delete, and retrieve data in databases like MySQL, Oracle, PostgreSQL, etc. Overall, SQL is a query language that communicates with databases.In this S
11 min read
SQL Commands | DDL, DQL, DML, DCL and TCL Commands SQL commands are crucial for managing databases effectively. These commands are divided into categories such as Data Definition Language (DDL), Data Manipulation Language (DML), Data Control Language (DCL), Data Query Language (DQL), and Transaction Control Language (TCL). In this article, we will e
7 min read
SQL Joins (Inner, Left, Right and Full Join) SQL joins are fundamental tools for combining data from multiple tables in relational databases. Joins allow efficient data retrieval, which is essential for generating meaningful observations and solving complex business queries. Understanding SQL join types, such as INNER JOIN, LEFT JOIN, RIGHT JO
6 min read
Introduction of DBMS (Database Management System) A Database Management System (DBMS) is a software solution designed to efficiently manage, organize, and retrieve data in a structured manner. It serves as a critical component in modern computing, enabling organizations to store, manipulate, and secure their data effectively. From small application
8 min read
SQL Query Interview Questions SQL or Structured Query Language, is the standard language for managing and manipulating relational databases such as MySQL, Oracle, and PostgreSQL. It serves as a powerful tool for efficiently handling data whether retrieving specific data points, performing complex analysis, or modifying database
15 min read
CTE in SQL In SQL, a Common Table Expression (CTE) is an essential tool for simplifying complex queries and making them more readable. By defining temporary result sets that can be referenced multiple times, a CTE in SQL allows developers to break down complicated logic into manageable parts. CTEs help with hi
6 min read
Window Functions in SQL SQL window functions are essential for advanced data analysis and database management. They enable calculations across a specific set of rows, known as a "window," while retaining the individual rows in the dataset. Unlike traditional aggregate functions that summarize data for the entire group, win
7 min read
SQL | WITH Clause SQL queries can sometimes be complex, especially when you need to deal with multiple nested subqueries, aggregations, and joins. This is where the SQL WITH clause also known as Common Table Expressions (CTEs) comes in to make life easier. The WITH Clause is a powerful tool that simplifies complex SQ
6 min read
SQL Exercises : SQL Practice with Solution for Beginners and Experienced SQL (Structured Query Language) is a powerful and flexible tool for managing and manipulating relational databases. Regardless of our experience level, practising SQL exercises is essential for improving our skills. Regular practice not only enhances our understanding of SQL concepts but also builds
15+ min read