create table t1 (
pk int primary key,
a int,
b int
);
insert into t1 values
(11 , 0, 10),
(12 , 0, 10),
(13 , 1, 10),
(14 , 1, 10),
(18 , 2, 10),
(15 , 2, 20),
(16 , 2, 20),
(17 , 2, 20),
(19 , 4, 20),
(20 , 4, 20);
select pk, a, b, ntile(-1) over (order by a)
from t1; ERROR HY000: Argument of NTILE must be greater than 0
select pk, a, b,
ntile(0) over (order by a)
from t1; ERROR HY000: Argument of NTILE must be greater than 0
select pk, a, b,
ntile(1) over (order by pk)
from t1;
pk a b ntile(1) over (order by pk) 110101 120101 131101 141101 152201 162201 172201 182101 194201 204201
select pk, a, b,
ntile(2) over (order by pk)
from t1;
pk a b ntile(2) over (order by pk) 110101 120101 131101 141101 152201 162202 172202 182102 194202 204202
select pk, a, b,
ntile(3) over (order by pk)
from t1;
pk a b ntile(3) over (order by pk) 110101 120101 131101 141101 152202 162202 172202 182103 194203 204203
select pk, a, b,
ntile(4) over (order by pk)
from t1;
pk a b ntile(4) over (order by pk) 110101 120101 131101 141102 152202 162202 172203 182103 194204 204204
select pk, a, b,
ntile(5) over (order by pk)
from t1;
pk a b ntile(5) over (order by pk) 110101 120101 131102 141102 152203 162203 172204 182104 194205 204205
select pk, a, b,
ntile(6) over (order by pk)
from t1;
pk a b ntile(6) over (order by pk) 110101 120101 131102 141102 152203 162203 172204 182104 194205 204206
select pk, a, b,
ntile(7) over (order by pk)
from t1;
pk a b ntile(7) over (order by pk) 110101 120101 131102 141102 152203 162203 172204 182105 194206 204207
select pk, a, b,
ntile(8) over (order by pk)
from t1;
pk a b ntile(8) over (order by pk) 110101 120101 131102 141102 152203 162204 172205 182106 194207 204208
select pk, a, b,
ntile(9) over (order by pk)
from t1;
pk a b ntile(9) over (order by pk) 110101 120101 131102 141103 152204 162205 172206 182107 194208 204209
select pk, a, b,
ntile(10) over (order by pk)
from t1;
pk a b ntile(10) over (order by pk) 110101 120102 131103 141104 152205 162206 172207 182108 194209 2042010
select pk, a, b,
ntile(11) over (order by pk)
from t1;
pk a b ntile(11) over (order by pk) 110101 120102 131103 141104 152205 162206 172207 182108 194209 2042010
select pk, a, b,
ntile(20) over (order by pk)
from t1;
pk a b ntile(20) over (order by pk) 110101 120102 131103 141104 152205 162206 172207 182108 194209 2042010
select pk, a, b,
ntile(1) over (partition by b order by pk)
from t1;
pk a b ntile(1) over (partition by b order by pk) 110101 120101 131101 141101 182101 152201 162201 172201 194201 204201
select pk, a, b,
ntile(2) over (partition by b order by pk)
from t1;
pk a b ntile(2) over (partition by b order by pk) 110101 120101 131101 141102 182102 152201 162201 172201 194202 204202
select pk, a, b,
ntile(3) over (partition by b order by pk)
from t1;
pk a b ntile(3) over (partition by b order by pk) 110101 120101 131102 141102 182103 152201 162201 172202 194202 204203
select pk, a, b,
ntile(4) over (partition by b order by pk)
from t1;
pk a b ntile(4) over (partition by b order by pk) 110101 120101 131102 141103 182104 152201 162201 172202 194203 204204
select pk, a, b,
ntile(5) over (partition by b order by pk)
from t1;
pk a b ntile(5) over (partition by b order by pk) 110101 120102 131103 141104 182105 152201 162202 172203 194204 204205
select pk, a, b,
ntile(6) over (partition by b order by pk)
from t1;
pk a b ntile(6) over (partition by b order by pk) 110101 120102 131103 141104 182105 152201 162202 172203 194204 204205
select pk, a, b,
ntile(7) over (partition by b order by pk)
from t1;
pk a b ntile(7) over (partition by b order by pk) 110101 120102 131103 141104 182105 152201 162202 172203 194204 204205
select pk, a, b,
ntile(8) over (partition by b order by pk)
from t1;
pk a b ntile(8) over (partition by b order by pk) 110101 120102 131103 141104 182105 152201 162202 172203 194204 204205
select pk, a, b,
ntile(9) over (partition by b order by pk)
from t1;
pk a b ntile(9) over (partition by b order by pk) 110101 120102 131103 141104 182105 152201 162202 172203 194204 204205
select pk, a, b,
ntile(10) over (partition by b order by pk)
from t1;
pk a b ntile(10) over (partition by b order by pk) 110101 120102 131103 141104 182105 152201 162202 172203 194204 204205
select pk, a, b,
ntile(11) over (partition by b order by pk)
from t1;
pk a b ntile(11) over (partition by b order by pk) 110101 120102 131103 141104 182105 152201 162202 172203 194204 204205
select pk, a, b,
ntile(20) over (partition by b order by pk)
from t1;
pk a b ntile(20) over (partition by b order by pk) 110101 120102 131103 141104 182105 152201 162202 172203 194204 204205
select pk, a, b,
ntile(1 + 3) over (partition by b order by pk)
from t1;
pk a b ntile(1 + 3) over (partition by b order by pk) 110101 120101 131102 141103 182104 152201 162201 172202 194203 204204
select pk, a, b,
ntile((select 4)) over (partition by b order by pk)
from t1;
pk a b ntile((select 4)) over (partition by b order by pk) 110101 120101 131102 141103 182104 152201 162201 172202 194203 204204
select t1.a from t1 where pk = 11;
a 0
select pk, a, b,
ntile((select a from t1 where pk=11)) over (partition by b order by pk)
from t1; ERROR HY000: Argument of NTILE must be greater than 0
select t1.a from t1 where pk = 13;
a 1
select pk, a, b,
ntile((select a from t1 where pk=13)) over (partition by b order by pk) as ntile
from t1;
pk a b ntile 110101 120101 131101 141101 182101 152201 162201 172201 194201 204201
explain
select pk, a, b,
ntile((select a from t1 where pk=13)) over (partition by b order by pk) as ntile
from t1;
id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t1 ALL NULL NULL NULL NULL 10 Using temporary 2 SUBQUERY t1 const PRIMARY PRIMARY 4 const 1
select a from t1;
a 0 0 1 1 2 2 2 2 4 4
select pk, a, b,
ntile((select a from t1)) over (partition by b order by pk)
from t1; ERROR21000: Subquery returns more than 1 row
drop table t1;
#
# MDEV-9911 NTILE must return an error when parameter is not stable
#
create table t1 (
pk int primary key,
c1 nvarchar(10),
c2 nvarchar(10),
c3 int
);
insert into t1 values
(1, 'Mark', 'Male', 5),
(2, 'John', 'Male', 5),
(3, 'Pam', 'Female', 6),
(4, 'Sara', 'Female', 6),
(5, 'Todd', 'Male', 5),
(6, 'Mary', 'Female', 6),
(7, 'Ben', 'Male', 5),
(8, 'Jodi', 'Female', 6),
(9, 'Tom', 'Male', 5),
(10, 'Lucky', 'Male', 5),
(11, 'Mark', 'Male', 5),
(12, 'John', 'Male', 5),
(13, 'Pam', 'Female', 6),
(14, 'Sara', 'Female', 6),
(15, 'Todd', 'Male', 5),
(16, 'Mary', 'Female', 6),
(17, 'Ben', 'Male', 5),
(18, 'Jodi', 'Female', 6),
(19, 'Tom', 'Male', 5),
(20, 'Lucky', 'Male', 5);
select c1, c2, c3, ntile(6) over (partition by c2 order by pk) from t1;
c1 c2 c3 ntile(6) over (partition by c2 order by pk)
Pam Female 61
Sara Female 61
Mary Female 62
Jodi Female 62
Pam Female 63
Sara Female 64
Mary Female 65
Jodi Female 66
Mark Male 51
John Male 51
Todd Male 52
Ben Male 52
Tom Male 53
Lucky Male 53
Mark Male 54
John Male 54
Todd Male 55
Ben Male 55
Tom Male 56
Lucky Male 56
select c1, c2, c3, ntile(c3) over (partition by c2 order by pk) from t1;
c1 c2 c3 ntile(c3) over (partition by c2 order by pk)
Pam Female 61
Sara Female 61
Mary Female 62
Jodi Female 62
Pam Female 63
Sara Female 64
Mary Female 65
Jodi Female 66
Mark Male 51
John Male 51
Todd Male 51
Ben Male 52
Tom Male 52
Lucky Male 52
Mark Male 53
John Male 53
Todd Male 54
Ben Male 54
Tom Male 55
Lucky Male 55
update t1 set c3= 1 where pk = 1;
select c1, c2, c3, ntile(c3) over (partition by c2 order by pk) from t1; ERROR HY000: Argument of NTILE must be greater than 0
drop table t1;
#
# MDEV-39451 Floating point exception: division by zero in Item_sum_ntile::val_int
#
CREATE TABLE t (c2 TEXT CHARACTER SET'Binary' COLLATE 'Binary');
INSERT INTO t VALUES (REPEAT('a',1026)),(REPEAT('a',1026));
SELECT NTILE(2)OVER (PARTITION BY c2 ORDER BY c2) FROM t;
NTILE(2)OVER (PARTITION BY c2 ORDER BY c2) 1 2
Warnings:
Warning 42024 values were longer than max_sort_length. Sorting used only the first 1024 bytes
DROP TABLE t;
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-10-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.