Files
email-tracker/external/duckdb/test/sql/window/test_ntile.test
2025-10-24 19:21:19 -05:00

182 lines
3.4 KiB
SQL

# name: test/sql/window/test_ntile.test
# description: Test NTile function
# group: [window]
statement ok
CREATE TABLE Scoreboard(TeamName VARCHAR, Player VARCHAR, Score INTEGER);
statement ok
INSERT INTO Scoreboard VALUES ('Mongrels', 'Apu', 350);
statement ok
INSERT INTO Scoreboard VALUES ('Mongrels', 'Ned', 666);
statement ok
INSERT INTO Scoreboard VALUES ('Mongrels', 'Meg', 1030);
statement ok
INSERT INTO Scoreboard VALUES ('Mongrels', 'Burns', 1270);
statement ok
INSERT INTO Scoreboard VALUES ('Simpsons', 'Homer', 1);
statement ok
INSERT INTO Scoreboard VALUES ('Simpsons', 'Lisa', 710);
statement ok
INSERT INTO Scoreboard VALUES ('Simpsons', 'Marge', 990);
statement ok
INSERT INTO Scoreboard VALUES ('Simpsons', 'Bart', 2010);
query IIII
SELECT
TeamName,
Player,
Score,
NTILE(2) OVER (PARTITION BY TeamName ORDER BY Score ASC) AS NTILE
FROM ScoreBoard s
ORDER BY TeamName, Score;
----
Mongrels Apu 350 1
Mongrels Ned 666 1
Mongrels Meg 1030 2
Mongrels Burns 1270 2
Simpsons Homer 1 1
Simpsons Lisa 710 1
Simpsons Marge 990 2
Simpsons Bart 2010 2
query IIII
SELECT
TeamName,
Player,
Score,
NTILE(2) OVER (ORDER BY Score ASC) AS NTILE
FROM ScoreBoard s
ORDER BY Score;
----
Simpsons Homer 1 1
Mongrels Apu 350 1
Mongrels Ned 666 1
Simpsons Lisa 710 1
Simpsons Marge 990 2
Mongrels Meg 1030 2
Mongrels Burns 1270 2
Simpsons Bart 2010 2
query IIII
SELECT
TeamName,
Player,
Score,
NTILE(1000) OVER (PARTITION BY TeamName ORDER BY Score ASC) AS NTILE
FROM ScoreBoard s
ORDER BY TeamName, Score;
----
Mongrels Apu 350 1
Mongrels Ned 666 2
Mongrels Meg 1030 3
Mongrels Burns 1270 4
Simpsons Homer 1 1
Simpsons Lisa 710 2
Simpsons Marge 990 3
Simpsons Bart 2010 4
query IIII
SELECT
TeamName,
Player,
Score,
NTILE(1) OVER (PARTITION BY TeamName ORDER BY Score ASC) AS NTILE
FROM ScoreBoard s
ORDER BY TeamName, Score;
----
Mongrels Apu 350 1
Mongrels Ned 666 1
Mongrels Meg 1030 1
Mongrels Burns 1270 1
Simpsons Homer 1 1
Simpsons Lisa 710 1
Simpsons Marge 990 1
Simpsons Bart 2010 1
query IIII
SELECT
TeamName,
Player,
Score,
NTILE(NULL) OVER (PARTITION BY TeamName ORDER BY Score ASC) AS NTILE
FROM ScoreBoard s
ORDER BY TeamName, Score;
----
Mongrels Apu 350 NULL
Mongrels Ned 666 NULL
Mongrels Meg 1030 NULL
Mongrels Burns 1270 NULL
Simpsons Homer 1 NULL
Simpsons Lisa 710 NULL
Simpsons Marge 990 NULL
Simpsons Bart 2010 NULL
# incorrect number of parameters for ntile
statement error
SELECT
TeamName,
Player,
Score,
NTILE() OVER (PARTITION BY TeamName ORDER BY Score ASC) AS NTILE
FROM ScoreBoard s
ORDER BY TeamName, Score;
----
statement error
SELECT
TeamName,
Player,
Score,
NTILE(1,2) OVER (PARTITION BY TeamName ORDER BY Score ASC) AS NTILE
FROM ScoreBoard s
ORDER BY TeamName, Score;
----
statement error
SELECT
TeamName,
Player,
Score,
NTILE(1,2,3) OVER (PARTITION BY TeamName ORDER BY Score ASC) AS NTILE
FROM ScoreBoard s
ORDER BY TeamName, Score;
----
statement error
SELECT
TeamName,
Player,
Score,
NTILE(1,2,3,4) OVER (PARTITION BY TeamName ORDER BY Score ASC) AS NTILE
FROM ScoreBoard s
ORDER BY TeamName, Score;
----
statement error
SELECT
TeamName,
Player,
Score,
NTILE(-1) OVER (PARTITION BY TeamName ORDER BY Score ASC) AS NTILE
FROM ScoreBoard s
ORDER BY TeamName, Score;
----
statement error
SELECT
TeamName,
Player,
Score,
NTILE(0) OVER (PARTITION BY TeamName ORDER BY Score ASC) AS NTILE
FROM ScoreBoard s
ORDER BY TeamName, Score;
----