Search This Blog

Monday 16 January 2017

Split rows into groups in sql

NTILE used to distributes the rows into a specified number of groups.

Let's Test It....

Step 1:- Create Table  

CREATE TABLE TEST (
   ID INT,
   NAME VARCHAR(100)
);

Step 2:- Insert Records in the Table

INSERT INTO TEST VALUES(1,'Apple');
INSERT INTO TEST VALUES(2,'Apricot');
INSERT INTO TEST VALUES(3,'Avocado');
INSERT INTO TEST VALUES(4,'Banana');
INSERT INTO TEST VALUES(5,'Blackberry');
INSERT INTO TEST VALUES(6,'Blackplum');
INSERT INTO TEST VALUES(7,'Breadfruit');
INSERT INTO TEST VALUES(8,'Chickoo');
INSERT INTO TEST VALUES(9,'Cucumber');
INSERT INTO TEST VALUES(10,'Custardapple');
INSERT INTO TEST VALUES(11,'Dates');
INSERT INTO TEST VALUES(12,'Dragonfruit');
INSERT INTO TEST VALUES(13,'Figs');
INSERT INTO TEST VALUES(14,'Grapes');
INSERT INTO TEST VALUES(15,'Guavas');
INSERT INTO TEST VALUES(16,'Mango');
INSERT INTO TEST VALUES(17,'Orange');
INSERT INTO TEST VALUES(18,'Papaya');
INSERT INTO TEST VALUES(19,'Pear');
INSERT INTO TEST VALUES(20,'Pineapple');
INSERT INTO TEST VALUES(21,'Plum');
INSERT INTO TEST VALUES(22,'Pomogranate');
INSERT INTO TEST VALUES(23,'Watermelon');

Step 3:- Select Records

SELECT * FROM TEST;
ID
NAME
1
Apple
2
Apricot
3
Avocado
4
Banana
5
Blackberry
6
Blackplum
7
Breadfruit
8
Chickoo
9
Cucumber
10
Custardapple
11
Dates
12
Dragonfruit
13
Figs
14
Grapes
15
Guavas
16
Mango
17
Orange
18
Papaya
19
Pear
20
Pineapple
21
Plum
22
Pomogranate
23
Watermelon

Step 4:- Select Records with group

SELECT ID, NAME, NTILE(5) OVER(ORDER BY ID ASC) AS 'NTILE'
FROM TEST;
ID
NAME
NTILE
1
Apple
1
2
Apricot
1
3
Avocado
1
4
Banana
1
5
Blackberry
1
6
Blackplum
2
7
Breadfruit
2
8
Chickoo
2
9
Cucumber
2
10
Custardapple
2
11
Dates
3
12
Dragonfruit
3
13
Figs
3
14
Grapes
3
15
Guavas
3
16
Mango
4
17
Orange
4
18
Papaya
4
19
Pear
4
20
Pineapple
5
21
Plum
5
22
Pomogranate
5
23
Watermelon
5

Note:-

NTILE(N) - N indicate dividing rows into number of groups.