mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-05 14:02:21 +00:00
223 lines
4.0 KiB
Plaintext
223 lines
4.0 KiB
Plaintext
-- { echo }
|
|
|
|
-- Normal cases
|
|
select a, b, ntile(3) over (partition by a order by b rows between unbounded preceding and unbounded following) from(select intDiv(number,10) as a, number%10 as b from numbers(20));
|
|
0 0 1
|
|
0 1 1
|
|
0 2 1
|
|
0 3 1
|
|
0 4 2
|
|
0 5 2
|
|
0 6 2
|
|
0 7 3
|
|
0 8 3
|
|
0 9 3
|
|
1 0 1
|
|
1 1 1
|
|
1 2 1
|
|
1 3 1
|
|
1 4 2
|
|
1 5 2
|
|
1 6 2
|
|
1 7 3
|
|
1 8 3
|
|
1 9 3
|
|
select a, b, ntile(3) over (partition by a order by b) from(select intDiv(number,10) as a, number%10 as b from numbers(20));
|
|
0 0 1
|
|
0 1 1
|
|
0 2 1
|
|
0 3 1
|
|
0 4 2
|
|
0 5 2
|
|
0 6 2
|
|
0 7 3
|
|
0 8 3
|
|
0 9 3
|
|
1 0 1
|
|
1 1 1
|
|
1 2 1
|
|
1 3 1
|
|
1 4 2
|
|
1 5 2
|
|
1 6 2
|
|
1 7 3
|
|
1 8 3
|
|
1 9 3
|
|
select a, b, ntile(2) over (partition by a order by b) from(select intDiv(number,10) as a, number%10 as b from numbers(20));
|
|
0 0 1
|
|
0 1 1
|
|
0 2 1
|
|
0 3 1
|
|
0 4 1
|
|
0 5 2
|
|
0 6 2
|
|
0 7 2
|
|
0 8 2
|
|
0 9 2
|
|
1 0 1
|
|
1 1 1
|
|
1 2 1
|
|
1 3 1
|
|
1 4 1
|
|
1 5 2
|
|
1 6 2
|
|
1 7 2
|
|
1 8 2
|
|
1 9 2
|
|
select a, b, ntile(1) over (partition by a order by b) from(select intDiv(number,10) as a, number%10 as b from numbers(20));
|
|
0 0 1
|
|
0 1 1
|
|
0 2 1
|
|
0 3 1
|
|
0 4 1
|
|
0 5 1
|
|
0 6 1
|
|
0 7 1
|
|
0 8 1
|
|
0 9 1
|
|
1 0 1
|
|
1 1 1
|
|
1 2 1
|
|
1 3 1
|
|
1 4 1
|
|
1 5 1
|
|
1 6 1
|
|
1 7 1
|
|
1 8 1
|
|
1 9 1
|
|
select a, b, ntile(100) over (partition by a order by b) from(select intDiv(number,10) as a, number%10 as b from numbers(20));
|
|
0 0 1
|
|
0 1 2
|
|
0 2 3
|
|
0 3 4
|
|
0 4 5
|
|
0 5 6
|
|
0 6 7
|
|
0 7 8
|
|
0 8 9
|
|
0 9 10
|
|
1 0 1
|
|
1 1 2
|
|
1 2 3
|
|
1 3 4
|
|
1 4 5
|
|
1 5 6
|
|
1 6 7
|
|
1 7 8
|
|
1 8 9
|
|
1 9 10
|
|
select a, b, ntile(65535) over (partition by a order by b) from (select 1 as a, number as b from numbers(65535)) limit 100;
|
|
1 0 1
|
|
1 1 2
|
|
1 2 3
|
|
1 3 4
|
|
1 4 5
|
|
1 5 6
|
|
1 6 7
|
|
1 7 8
|
|
1 8 9
|
|
1 9 10
|
|
1 10 11
|
|
1 11 12
|
|
1 12 13
|
|
1 13 14
|
|
1 14 15
|
|
1 15 16
|
|
1 16 17
|
|
1 17 18
|
|
1 18 19
|
|
1 19 20
|
|
1 20 21
|
|
1 21 22
|
|
1 22 23
|
|
1 23 24
|
|
1 24 25
|
|
1 25 26
|
|
1 26 27
|
|
1 27 28
|
|
1 28 29
|
|
1 29 30
|
|
1 30 31
|
|
1 31 32
|
|
1 32 33
|
|
1 33 34
|
|
1 34 35
|
|
1 35 36
|
|
1 36 37
|
|
1 37 38
|
|
1 38 39
|
|
1 39 40
|
|
1 40 41
|
|
1 41 42
|
|
1 42 43
|
|
1 43 44
|
|
1 44 45
|
|
1 45 46
|
|
1 46 47
|
|
1 47 48
|
|
1 48 49
|
|
1 49 50
|
|
1 50 51
|
|
1 51 52
|
|
1 52 53
|
|
1 53 54
|
|
1 54 55
|
|
1 55 56
|
|
1 56 57
|
|
1 57 58
|
|
1 58 59
|
|
1 59 60
|
|
1 60 61
|
|
1 61 62
|
|
1 62 63
|
|
1 63 64
|
|
1 64 65
|
|
1 65 66
|
|
1 66 67
|
|
1 67 68
|
|
1 68 69
|
|
1 69 70
|
|
1 70 71
|
|
1 71 72
|
|
1 72 73
|
|
1 73 74
|
|
1 74 75
|
|
1 75 76
|
|
1 76 77
|
|
1 77 78
|
|
1 78 79
|
|
1 79 80
|
|
1 80 81
|
|
1 81 82
|
|
1 82 83
|
|
1 83 84
|
|
1 84 85
|
|
1 85 86
|
|
1 86 87
|
|
1 87 88
|
|
1 88 89
|
|
1 89 90
|
|
1 90 91
|
|
1 91 92
|
|
1 92 93
|
|
1 93 94
|
|
1 94 95
|
|
1 95 96
|
|
1 96 97
|
|
1 97 98
|
|
1 98 99
|
|
1 99 100
|
|
-- Bad arguments
|
|
select a, b, ntile(3.0) over (partition by a order by b) from(select intDiv(number,10) as a, number%10 as b from numbers(20)); -- { serverError 36 }
|
|
select a, b, ntile('2') over (partition by a order by b) from(select intDiv(number,10) as a, number%10 as b from numbers(20)); -- { serverError 36 }
|
|
select a, b, ntile(0) over (partition by a order by b) from(select intDiv(number,10) as a, number%10 as b from numbers(20)); -- { serverError 36 }
|
|
select a, b, ntile(-2) over (partition by a order by b) from(select intDiv(number,10) as a, number%10 as b from numbers(20)); -- { serverError 36 }
|
|
select a, b, ntile(b + 1) over (partition by a order by b) from(select intDiv(number,10) as a, number%10 as b from numbers(20)); -- { serverError 36 }
|
|
-- Bad window type
|
|
select a, b, ntile(2) over (partition by a) from(select intDiv(number,10) as a, number%10 as b from numbers(20)); -- { serverError 36 }
|
|
select a, b, ntile(2) over (partition by a order by b rows between 4 preceding and unbounded following) from(select intDiv(number,10) as a, number%10 as b from numbers(20)); -- { serverError 36 }
|
|
select a, b, ntile(2) over (partition by a order by b rows between unbounded preceding and 4 following) from(select intDiv(number,10) as a, number%10 as b from numbers(20)); -- { serverError 36 }
|
|
select a, b, ntile(2) over (partition by a order by b rows between 4 preceding and 4 following) from(select intDiv(number,10) as a, number%10 as b from numbers(20));; -- { serverError 36 }
|
|
select a, b, ntile(2) over (partition by a order by b rows between current row and 4 following) from(select intDiv(number,10) as a, number%10 as b from numbers(20));; -- { serverError 36 }
|
|
select a, b, ntile(2) over (partition by a order by b range unbounded preceding) from(select intDiv(number,10) as a, number%10 as b from numbers(20));; -- { serverError 36 }
|