mirror of
https://github.com/apache/impala.git
synced 2025-12-30 12:02:10 -05:00
Change-Id: I50eceb04c0eb1c9eedb9c963cb75d2fc5aeb4825 Reviewed-on: http://gerrit.ent.cloudera.com:8080/1847 Reviewed-by: Nong Li <nong@cloudera.com> Tested-by: jenkins
928 lines
19 KiB
Plaintext
928 lines
19 KiB
Plaintext
====
|
|
---- QUERY
|
|
# no grouping exprs, cols contain nulls except for bool cols
|
|
select count(bool_col), min(bool_col), max(bool_col)
|
|
from alltypesagg
|
|
---- TYPES
|
|
bigint, boolean, boolean
|
|
---- RESULTS
|
|
10000,false,true
|
|
====
|
|
---- QUERY
|
|
# no grouping exprs, cols contain nulls
|
|
select count(*), count(tinyint_col), min(tinyint_col), max(tinyint_col), sum(tinyint_col),
|
|
avg(tinyint_col)
|
|
from alltypesagg
|
|
---- TYPES
|
|
bigint, bigint, tinyint, tinyint, bigint, double
|
|
---- RESULTS
|
|
10000,9000,1,9,45000,5
|
|
====
|
|
---- QUERY
|
|
select count(*), count(smallint_col), min(smallint_col), max(smallint_col), sum(smallint_col),
|
|
avg(smallint_col)
|
|
from alltypesagg
|
|
---- TYPES
|
|
bigint, bigint, smallint, smallint, bigint, double
|
|
---- RESULTS
|
|
10000,9900,1,99,495000,50
|
|
====
|
|
---- QUERY
|
|
select count(*), count(int_col), min(int_col), max(int_col), sum(int_col), avg(int_col)
|
|
from alltypesagg
|
|
---- TYPES
|
|
bigint, bigint, int, int, bigint, double
|
|
---- RESULTS
|
|
10000,9990,1,999,4995000,500
|
|
====
|
|
---- QUERY
|
|
select count(*), count(bigint_col), min(bigint_col), max(bigint_col), sum(bigint_col),
|
|
avg(bigint_col)
|
|
from alltypesagg
|
|
---- TYPES
|
|
bigint, bigint, bigint, bigint, bigint, double
|
|
---- RESULTS
|
|
10000,9990,10,9990,49950000,5000
|
|
====
|
|
---- QUERY
|
|
select count(*), count(float_col), min(float_col), max(float_col), sum(float_col),
|
|
avg(float_col)
|
|
from alltypesagg
|
|
---- TYPES
|
|
bigint, bigint, float, float, double, double
|
|
---- RESULTS
|
|
10000,9990,1.100000023841858,1098.900024414062,5494499.999767542,549.9999999767309
|
|
====
|
|
---- QUERY
|
|
select count(*), count(double_col), min(double_col), max(double_col), round(sum(double_col), 0),
|
|
round(avg(double_col), 0)
|
|
from alltypesagg
|
|
---- TYPES
|
|
bigint, bigint, double, double, double, double
|
|
---- RESULTS
|
|
10000,9990,10.1,10089.9,50449500,5050
|
|
====
|
|
---- QUERY
|
|
select count(*), min(string_col), max(string_col), min(date_string_col),
|
|
max(date_string_col)
|
|
from alltypesagg
|
|
---- TYPES
|
|
bigint, string, string, string, string
|
|
---- RESULTS
|
|
10000,'0','999','01/01/10','01/10/10'
|
|
#====
|
|
#---- QUERY
|
|
# TODO: figure out why I'm getting a diff on the avg(timestamp_col) expr
|
|
# 2010-01-05 20:47:11.705094575
|
|
#select min(timestamp_col), max(timestamp_col), avg(timestamp_col) from alltypesagg
|
|
#---- TYPES
|
|
#timestamp, timestamp, timestamp
|
|
#---- RESULTS
|
|
#2010-01-01 00:00:00,2010-01-10 18:02:05.100000000,2010-01-05 20:47:11.705086469
|
|
====
|
|
---- QUERY
|
|
# grouping by different data types, with NULLs
|
|
select tinyint_col, count(*) from alltypesagg group by 1
|
|
---- TYPES
|
|
tinyint, bigint
|
|
---- RESULTS
|
|
1,1000
|
|
2,1000
|
|
3,1000
|
|
4,1000
|
|
5,1000
|
|
6,1000
|
|
7,1000
|
|
8,1000
|
|
9,1000
|
|
NULL,1000
|
|
====
|
|
---- QUERY
|
|
# grouping by different data types, with NULLs, grouping expr missing from select list
|
|
select bool_col,min(bool_col),max(bool_col) from alltypesagg group by 1
|
|
---- TYPES
|
|
boolean,boolean,boolean
|
|
---- RESULTS
|
|
false,false,false
|
|
true,true,true
|
|
====
|
|
---- QUERY
|
|
select count(*) from alltypesagg group by tinyint_col
|
|
---- TYPES
|
|
bigint
|
|
---- RESULTS
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
====
|
|
---- QUERY
|
|
select smallint_col % 10, count(*) from alltypesagg group by 1
|
|
---- TYPES
|
|
smallint, bigint
|
|
---- RESULTS
|
|
0,900
|
|
1,1000
|
|
2,1000
|
|
3,1000
|
|
4,1000
|
|
5,1000
|
|
6,1000
|
|
7,1000
|
|
8,1000
|
|
9,1000
|
|
NULL,100
|
|
====
|
|
---- QUERY
|
|
select count(*) from alltypesagg group by smallint_col % 10
|
|
---- TYPES
|
|
bigint
|
|
---- RESULTS
|
|
100
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
900
|
|
====
|
|
---- QUERY
|
|
select int_col % 10, count(*) from alltypesagg group by 1
|
|
---- TYPES
|
|
int, bigint
|
|
---- RESULTS
|
|
0,990
|
|
1,1000
|
|
2,1000
|
|
3,1000
|
|
4,1000
|
|
5,1000
|
|
6,1000
|
|
7,1000
|
|
8,1000
|
|
9,1000
|
|
NULL,10
|
|
====
|
|
---- QUERY
|
|
select count(*) from alltypesagg group by int_col % 10
|
|
---- TYPES
|
|
bigint
|
|
---- RESULTS
|
|
10
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
990
|
|
====
|
|
---- QUERY
|
|
# Check that ALL inside aggregates is correct
|
|
select count(ALL *) from alltypesagg group by int_col % 10
|
|
---- TYPES
|
|
bigint
|
|
---- RESULTS
|
|
10
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
990
|
|
====
|
|
---- QUERY
|
|
select bigint_col % 100, count(*) from alltypesagg group by 1
|
|
---- TYPES
|
|
bigint, bigint
|
|
---- RESULTS
|
|
0,990
|
|
10,1000
|
|
20,1000
|
|
30,1000
|
|
40,1000
|
|
50,1000
|
|
60,1000
|
|
70,1000
|
|
80,1000
|
|
90,1000
|
|
NULL,10
|
|
====
|
|
---- QUERY
|
|
select count(*) from alltypesagg group by bigint_col % 100
|
|
---- TYPES
|
|
bigint
|
|
---- RESULTS
|
|
10
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
990
|
|
====
|
|
---- QUERY
|
|
select float_col, float_col * 2, count(*) from alltypes group by 1, 2
|
|
---- TYPES
|
|
float, double, bigint
|
|
---- RESULTS
|
|
0,0,730
|
|
3.299999952316284,6.599999904632568,730
|
|
8.800000190734863,17.60000038146973,730
|
|
6.599999904632568,13.19999980926514,730
|
|
7.699999809265137,15.39999961853027,730
|
|
2.200000047683716,4.400000095367432,730
|
|
5.5,11,730
|
|
1.100000023841858,2.200000047683716,730
|
|
9.899999618530273,19.79999923706055,730
|
|
4.400000095367432,8.800000190734863,730
|
|
====
|
|
---- QUERY
|
|
select count(*) from alltypes group by float_col
|
|
---- TYPES
|
|
bigint
|
|
---- RESULTS
|
|
730
|
|
730
|
|
730
|
|
730
|
|
730
|
|
730
|
|
730
|
|
730
|
|
730
|
|
730
|
|
====
|
|
---- QUERY
|
|
select float_col, count(*) from alltypesagg where float_col is null group by 1
|
|
---- TYPES
|
|
float, bigint
|
|
---- RESULTS
|
|
NULL,10
|
|
====
|
|
---- QUERY
|
|
select double_col, double_col * 2, count(*) from alltypes group by 1, 2
|
|
---- TYPES
|
|
double, double, bigint
|
|
---- RESULTS
|
|
0,0,730
|
|
90.90000000000001,181.8,730
|
|
40.4,80.8,730
|
|
20.2,40.4,730
|
|
80.8,161.6,730
|
|
10.1,20.2,730
|
|
70.7,141.4,730
|
|
50.5,101,730
|
|
30.3,60.6,730
|
|
60.6,121.2,730
|
|
====
|
|
---- QUERY
|
|
select count(*) from alltypes group by double_col
|
|
---- TYPES
|
|
bigint
|
|
---- RESULTS
|
|
730
|
|
730
|
|
730
|
|
730
|
|
730
|
|
730
|
|
730
|
|
730
|
|
730
|
|
730
|
|
====
|
|
---- QUERY
|
|
select double_col, count(*) from alltypesagg where double_col is null group by 1
|
|
---- TYPES
|
|
double, bigint
|
|
---- RESULTS
|
|
NULL,10
|
|
====
|
|
---- QUERY
|
|
select date_string_col, count(*) from alltypesagg group by 1
|
|
---- TYPES
|
|
string, bigint
|
|
---- RESULTS
|
|
'01/01/10',1000
|
|
'01/02/10',1000
|
|
'01/03/10',1000
|
|
'01/04/10',1000
|
|
'01/05/10',1000
|
|
'01/06/10',1000
|
|
'01/07/10',1000
|
|
'01/08/10',1000
|
|
'01/09/10',1000
|
|
'01/10/10',1000
|
|
====
|
|
---- QUERY
|
|
select count(*) from alltypesagg group by date_string_col
|
|
---- TYPES
|
|
bigint
|
|
---- RESULTS
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
1000
|
|
====
|
|
---- QUERY
|
|
# grouping by multiple exprs, with nulls
|
|
select tinyint_col % 3, smallint_col % 3, count(*) from alltypesagg
|
|
where day = 1 group by 1, 2
|
|
---- TYPES
|
|
tinyint, smallint, bigint
|
|
---- RESULTS
|
|
0,0,120
|
|
0,1,90
|
|
0,2,90
|
|
1,0,90
|
|
1,1,120
|
|
1,2,90
|
|
2,0,90
|
|
2,1,90
|
|
2,2,120
|
|
NULL,0,30
|
|
NULL,1,30
|
|
NULL,2,30
|
|
NULL,NULL,10
|
|
====
|
|
---- QUERY
|
|
select count(*) from alltypesagg
|
|
where day = 1 group by tinyint_col % 3, smallint_col % 3
|
|
---- TYPES
|
|
bigint
|
|
---- RESULTS
|
|
10
|
|
120
|
|
120
|
|
120
|
|
30
|
|
30
|
|
30
|
|
90
|
|
90
|
|
90
|
|
90
|
|
90
|
|
90
|
|
====
|
|
---- QUERY
|
|
# same result as previous query
|
|
select tinyint_col % 3, smallint_col % 3, count(*) from alltypesagg where day = 1 group by 2, 1
|
|
---- TYPES
|
|
tinyint, smallint, bigint
|
|
---- RESULTS
|
|
0,0,120
|
|
0,1,90
|
|
0,2,90
|
|
1,0,90
|
|
1,1,120
|
|
1,2,90
|
|
2,0,90
|
|
2,1,90
|
|
2,2,120
|
|
NULL,0,30
|
|
NULL,1,30
|
|
NULL,2,30
|
|
NULL,NULL,10
|
|
====
|
|
---- QUERY
|
|
select tinyint_col % 2, smallint_col % 2, int_col % 2, bigint_col % 2, date_string_col, count(*)
|
|
from alltypesagg
|
|
where date_string_col = '01/01/10' or date_string_col = '01/02/10'
|
|
group by 1, 2, 3, 4, 5
|
|
---- TYPES
|
|
tinyint, smallint, int, bigint, string, bigint
|
|
---- RESULTS
|
|
0,0,0,0,'01/01/10',400
|
|
0,0,0,0,'01/02/10',400
|
|
1,1,1,0,'01/01/10',500
|
|
1,1,1,0,'01/02/10',500
|
|
NULL,0,0,0,'01/01/10',90
|
|
NULL,0,0,0,'01/02/10',90
|
|
NULL,NULL,0,0,'01/01/10',9
|
|
NULL,NULL,0,0,'01/02/10',9
|
|
NULL,NULL,NULL,NULL,'01/01/10',1
|
|
NULL,NULL,NULL,NULL,'01/02/10',1
|
|
====
|
|
---- QUERY
|
|
select count(*)
|
|
from alltypesagg
|
|
where date_string_col = '01/01/10' or date_string_col = '01/02/10'
|
|
group by tinyint_col % 2, smallint_col % 2, int_col % 2, bigint_col % 2, date_string_col
|
|
---- TYPES
|
|
bigint
|
|
---- RESULTS
|
|
1
|
|
1
|
|
400
|
|
400
|
|
500
|
|
500
|
|
9
|
|
9
|
|
90
|
|
90
|
|
====
|
|
---- QUERY
|
|
# no grouping cols, no matching rows
|
|
select count(*), min(tinyint_col), max(tinyint_col), sum(tinyint_col), avg(tinyint_col)
|
|
from alltypesagg
|
|
where tinyint_col = -1
|
|
---- TYPES
|
|
bigint, tinyint, tinyint, bigint, double
|
|
---- RESULTS
|
|
0,NULL,NULL,NULL,NULL
|
|
====
|
|
---- QUERY
|
|
select count(*), min(smallint_col), max(smallint_col), sum(smallint_col), avg(smallint_col)
|
|
from alltypesagg
|
|
where smallint_col = -1
|
|
---- TYPES
|
|
bigint, smallint, smallint, bigint, double
|
|
---- RESULTS
|
|
0,NULL,NULL,NULL,NULL
|
|
====
|
|
---- QUERY
|
|
select count(*), min(int_col), max(int_col), sum(int_col), avg(int_col)
|
|
from alltypesagg
|
|
where int_col = -1
|
|
---- TYPES
|
|
bigint, int, int, bigint, double
|
|
---- RESULTS
|
|
0,NULL,NULL,NULL,NULL
|
|
====
|
|
---- QUERY
|
|
select count(*), min(bigint_col), max(bigint_col), sum(bigint_col), avg(bigint_col)
|
|
from alltypesagg
|
|
where bigint_col = -1
|
|
---- TYPES
|
|
bigint, bigint, bigint, bigint, double
|
|
---- RESULTS
|
|
0,NULL,NULL,NULL,NULL
|
|
====
|
|
---- QUERY
|
|
select count(*), min(float_col), max(float_col), sum(float_col), avg(float_col)
|
|
from alltypesagg
|
|
where float_col < -1.0
|
|
---- TYPES
|
|
bigint, float, float, double, double
|
|
---- RESULTS
|
|
0,NULL,NULL,NULL,NULL
|
|
====
|
|
---- QUERY
|
|
select count(*), min(double_col), max(double_col), sum(double_col), avg(double_col)
|
|
from alltypesagg
|
|
where double_col < -1.0
|
|
---- TYPES
|
|
bigint, double, double, double, double
|
|
---- RESULTS
|
|
0,NULL,NULL,NULL,NULL
|
|
====
|
|
---- QUERY
|
|
# HAVING clauses over all aggregation functions, plus compound HAVING clauses
|
|
select int_col % 7, count(*), max(int_col) from alltypesagg group by 1
|
|
---- TYPES
|
|
int, bigint, int
|
|
---- RESULTS
|
|
0,1420,994
|
|
1,1430,995
|
|
2,1430,996
|
|
3,1430,997
|
|
4,1430,998
|
|
5,1430,999
|
|
6,1420,993
|
|
NULL,10,NULL
|
|
====
|
|
---- QUERY
|
|
select int_col % 7, count(*) from alltypesagg group by 1 having max(int_col) > 991
|
|
---- TYPES
|
|
int, bigint
|
|
---- RESULTS
|
|
0,1420
|
|
1,1430
|
|
2,1430
|
|
3,1430
|
|
4,1430
|
|
5,1430
|
|
6,1420
|
|
====
|
|
---- QUERY
|
|
select int_col % 7, count(*) from alltypesagg group by 1
|
|
having max(int_col) > 991 and count(*) > 1420
|
|
---- TYPES
|
|
int, bigint
|
|
---- RESULTS
|
|
1,1430
|
|
2,1430
|
|
3,1430
|
|
4,1430
|
|
5,1430
|
|
====
|
|
---- QUERY
|
|
select int_col % 7, count(*) from alltypesagg group by 1
|
|
having min(int_col) < 7
|
|
---- TYPES
|
|
int, bigint
|
|
---- RESULTS
|
|
1,1430
|
|
2,1430
|
|
3,1430
|
|
4,1430
|
|
5,1430
|
|
6,1420
|
|
====
|
|
---- QUERY
|
|
select int_col % 7, count(*) from alltypesagg group by 1
|
|
having min(int_col) < 7 and count(*) > 1420
|
|
---- TYPES
|
|
int, bigint
|
|
---- RESULTS
|
|
1,1430
|
|
2,1430
|
|
3,1430
|
|
4,1430
|
|
5,1430
|
|
====
|
|
---- QUERY
|
|
select int_col % 7, count(*), sum(int_col) from alltypesagg group by 1
|
|
---- TYPES
|
|
int, bigint, bigint
|
|
---- RESULTS
|
|
0,1420,710710
|
|
1,1430,712140
|
|
2,1430,713570
|
|
3,1430,715000
|
|
4,1430,716430
|
|
5,1430,717860
|
|
6,1420,709290
|
|
NULL,10,NULL
|
|
====
|
|
---- QUERY
|
|
select int_col % 7, count(*), sum(int_col) from alltypesagg group by 1
|
|
having sum(int_col) >= 715000
|
|
---- TYPES
|
|
int, bigint, bigint
|
|
---- RESULTS
|
|
3,1430,715000
|
|
4,1430,716430
|
|
5,1430,717860
|
|
====
|
|
---- QUERY
|
|
select int_col % 7, count(*), sum(int_col) from alltypesagg group by 1
|
|
having sum(int_col) >= 715000 or count(*) > 1420
|
|
---- TYPES
|
|
int, bigint, bigint
|
|
---- RESULTS
|
|
1,1430,712140
|
|
2,1430,713570
|
|
3,1430,715000
|
|
4,1430,716430
|
|
5,1430,717860
|
|
====
|
|
---- QUERY
|
|
select int_col % 7, count(*), sum(int_col) from alltypesagg group by 1
|
|
having sum(int_col) is null
|
|
---- TYPES
|
|
int, bigint, bigint
|
|
---- RESULTS
|
|
NULL,10,NULL
|
|
====
|
|
---- QUERY
|
|
select int_col % 7, count(*), avg(int_col) from alltypesagg group by 1
|
|
---- TYPES
|
|
int, bigint, double
|
|
---- RESULTS
|
|
0,1420,500.5
|
|
1,1430,498
|
|
2,1430,499
|
|
3,1430,500
|
|
4,1430,501
|
|
5,1430,502
|
|
6,1420,499.5
|
|
NULL,10,NULL
|
|
====
|
|
---- QUERY
|
|
select int_col % 7, count(*), avg(int_col) from alltypesagg group by 1
|
|
having avg(int_col) > 500
|
|
---- TYPES
|
|
int, bigint, double
|
|
---- RESULTS
|
|
0,1420,500.5
|
|
4,1430,501
|
|
5,1430,502
|
|
====
|
|
---- QUERY
|
|
select int_col % 7, count(*), avg(int_col) from alltypesagg group by 1
|
|
having avg(int_col) > 500 or count(*) = 10
|
|
---- TYPES
|
|
int, bigint, double
|
|
---- RESULTS
|
|
0,1420,500.5
|
|
4,1430,501
|
|
5,1430,502
|
|
NULL,10,NULL
|
|
====
|
|
---- QUERY
|
|
select timestamp_col, count(*) from alltypesagg
|
|
group by timestamp_col having timestamp_col < cast('2010-01-01 01:05:20' as timestamp)
|
|
---- TYPES
|
|
timestamp, bigint
|
|
---- RESULTS
|
|
2010-01-01 00:00:00,1
|
|
2010-01-01 00:01:00,1
|
|
2010-01-01 00:02:00.100000000,1
|
|
2010-01-01 00:03:00.300000000,1
|
|
2010-01-01 00:04:00.600000000,1
|
|
2010-01-01 00:05:00.100000000,1
|
|
2010-01-01 00:06:00.150000000,1
|
|
2010-01-01 00:07:00.210000000,1
|
|
2010-01-01 00:08:00.280000000,1
|
|
2010-01-01 00:09:00.360000000,1
|
|
2010-01-01 00:10:00.450000000,1
|
|
2010-01-01 00:11:00.550000000,1
|
|
2010-01-01 00:12:00.660000000,1
|
|
2010-01-01 00:13:00.780000000,1
|
|
2010-01-01 00:14:00.910000000,1
|
|
2010-01-01 00:15:01.500000000,1
|
|
2010-01-01 00:16:01.200000000,1
|
|
2010-01-01 00:17:01.360000000,1
|
|
2010-01-01 00:18:01.530000000,1
|
|
2010-01-01 00:19:01.710000000,1
|
|
2010-01-01 00:20:01.900000000,1
|
|
2010-01-01 00:21:02.100000000,1
|
|
2010-01-01 00:22:02.310000000,1
|
|
2010-01-01 00:23:02.530000000,1
|
|
2010-01-01 00:24:02.760000000,1
|
|
2010-01-01 00:25:03,1
|
|
2010-01-01 00:26:03.250000000,1
|
|
2010-01-01 00:27:03.510000000,1
|
|
2010-01-01 00:28:03.780000000,1
|
|
2010-01-01 00:29:04.600000000,1
|
|
2010-01-01 00:30:04.350000000,1
|
|
2010-01-01 00:31:04.650000000,1
|
|
2010-01-01 00:32:04.960000000,1
|
|
2010-01-01 00:33:05.280000000,1
|
|
2010-01-01 00:34:05.610000000,1
|
|
2010-01-01 00:35:05.950000000,1
|
|
2010-01-01 00:36:06.300000000,1
|
|
2010-01-01 00:37:06.660000000,1
|
|
2010-01-01 00:38:07.300000000,1
|
|
2010-01-01 00:39:07.410000000,1
|
|
2010-01-01 00:40:07.800000000,1
|
|
2010-01-01 00:41:08.200000000,1
|
|
2010-01-01 00:42:08.610000000,1
|
|
2010-01-01 00:43:09.300000000,1
|
|
2010-01-01 00:44:09.460000000,1
|
|
2010-01-01 00:45:09.900000000,1
|
|
2010-01-01 00:46:10.350000000,1
|
|
2010-01-01 00:47:10.810000000,1
|
|
2010-01-01 00:48:11.280000000,1
|
|
2010-01-01 00:49:11.760000000,1
|
|
2010-01-01 00:50:12.250000000,1
|
|
2010-01-01 00:51:12.750000000,1
|
|
2010-01-01 00:52:13.260000000,1
|
|
2010-01-01 00:53:13.780000000,1
|
|
2010-01-01 00:54:14.310000000,1
|
|
2010-01-01 00:55:14.850000000,1
|
|
2010-01-01 00:56:15.400000000,1
|
|
2010-01-01 00:57:15.960000000,1
|
|
2010-01-01 00:58:16.530000000,1
|
|
2010-01-01 00:59:17.110000000,1
|
|
2010-01-01 01:00:17.700000000,1
|
|
2010-01-01 01:01:18.300000000,1
|
|
2010-01-01 01:02:18.910000000,1
|
|
2010-01-01 01:03:19.530000000,1
|
|
2010-01-01 01:04:20.160000000,1
|
|
====
|
|
---- QUERY
|
|
# Test NULLs in aggregate functions
|
|
select count(NULL), min(NULL), max(NULL), sum(NULL), avg(NULL) from alltypesagg
|
|
---- TYPES
|
|
bigint, boolean, boolean, bigint, double
|
|
---- RESULTS
|
|
0,NULL,NULL,NULL,NULL
|
|
====
|
|
---- QUERY
|
|
# Test ignored distinct in MIN and MAX with NULLs
|
|
select min(distinct NULL), max(distinct NULL) from alltypesagg
|
|
---- TYPES
|
|
boolean, boolean
|
|
---- RESULTS
|
|
NULL,NULL
|
|
====
|
|
---- QUERY
|
|
# Test group_concat with default delimiter
|
|
select day, group_concat(string_col)
|
|
from alltypesagg
|
|
where id % 100 = day
|
|
group by day
|
|
---- TYPES
|
|
int, string
|
|
---- RESULTS
|
|
3,'3, 103, 203, 303, 403, 503, 603, 703, 803, 903'
|
|
5,'5, 105, 205, 305, 405, 505, 605, 705, 805, 905'
|
|
8,'8, 108, 208, 308, 408, 508, 608, 708, 808, 908'
|
|
4,'4, 104, 204, 304, 404, 504, 604, 704, 804, 904'
|
|
9,'9, 109, 209, 309, 409, 509, 609, 709, 809, 909'
|
|
2,'2, 102, 202, 302, 402, 502, 602, 702, 802, 902'
|
|
6,'6, 106, 206, 306, 406, 506, 606, 706, 806, 906'
|
|
10,'10, 110, 210, 310, 410, 510, 610, 710, 810, 910'
|
|
7,'7, 107, 207, 307, 407, 507, 607, 707, 807, 907'
|
|
1,'1, 101, 201, 301, 401, 501, 601, 701, 801, 901'
|
|
====
|
|
---- QUERY
|
|
# Test group_concat with NULL (default) delimiter
|
|
select day, group_concat(string_col, NULL)
|
|
from alltypesagg
|
|
where id % 100 = day
|
|
group by day
|
|
---- TYPES
|
|
int, string
|
|
---- RESULTS
|
|
3,'3, 103, 203, 303, 403, 503, 603, 703, 803, 903'
|
|
5,'5, 105, 205, 305, 405, 505, 605, 705, 805, 905'
|
|
8,'8, 108, 208, 308, 408, 508, 608, 708, 808, 908'
|
|
4,'4, 104, 204, 304, 404, 504, 604, 704, 804, 904'
|
|
9,'9, 109, 209, 309, 409, 509, 609, 709, 809, 909'
|
|
2,'2, 102, 202, 302, 402, 502, 602, 702, 802, 902'
|
|
6,'6, 106, 206, 306, 406, 506, 606, 706, 806, 906'
|
|
10,'10, 110, 210, 310, 410, 510, 610, 710, 810, 910'
|
|
7,'7, 107, 207, 307, 407, 507, 607, 707, 807, 907'
|
|
1,'1, 101, 201, 301, 401, 501, 601, 701, 801, 901'
|
|
====
|
|
---- QUERY
|
|
# Test group_concat with both args as NULL
|
|
select day, group_concat(NULL, NULL)
|
|
from alltypesagg
|
|
where id % 100 = day
|
|
group by day
|
|
---- TYPES
|
|
int, string
|
|
---- RESULTS
|
|
3,'NULL'
|
|
5,'NULL'
|
|
8,'NULL'
|
|
4,'NULL'
|
|
9,'NULL'
|
|
2,'NULL'
|
|
6,'NULL'
|
|
10,'NULL'
|
|
7,'NULL'
|
|
1,'NULL'
|
|
====
|
|
---- QUERY
|
|
# Test group_concat with arrow delimiter
|
|
select day, group_concat(string_col, "->")
|
|
from alltypesagg
|
|
where id % 100 = day
|
|
group by day
|
|
---- TYPES
|
|
int, string
|
|
---- RESULTS
|
|
3,'3->103->203->303->403->503->603->703->803->903'
|
|
5,'5->105->205->305->405->505->605->705->805->905'
|
|
8,'8->108->208->308->408->508->608->708->808->908'
|
|
4,'4->104->204->304->404->504->604->704->804->904'
|
|
9,'9->109->209->309->409->509->609->709->809->909'
|
|
2,'2->102->202->302->402->502->602->702->802->902'
|
|
6,'6->106->206->306->406->506->606->706->806->906'
|
|
10,'10->110->210->310->410->510->610->710->810->910'
|
|
7,'7->107->207->307->407->507->607->707->807->907'
|
|
1,'1->101->201->301->401->501->601->701->801->901'
|
|
====
|
|
---- QUERY
|
|
# Test group_concat with column delimiter
|
|
# Will cause all columns save first to be duplicated
|
|
select day, group_concat(trim(string_col), trim(string_col))
|
|
from alltypesagg
|
|
where id % 200 = day
|
|
group by day
|
|
---- TYPES
|
|
int, string
|
|
---- RESULTS
|
|
3,'3203203403403603603803803'
|
|
5,'5205205405405605605805805'
|
|
8,'8208208408408608608808808'
|
|
4,'4204204404404604604804804'
|
|
9,'9209209409409609609809809'
|
|
2,'2202202402402602602802802'
|
|
6,'6206206406406606606806806'
|
|
10,'10210210410410610610810810'
|
|
7,'7207207407407607607807807'
|
|
1,'1201201401401601601801801'
|
|
====
|
|
---- QUERY
|
|
# Test group_concat with multiple agg columns
|
|
select day, group_concat(string_col, '->'), group_concat(date_string_col)
|
|
from alltypesagg
|
|
where id % 250 = day
|
|
group by day
|
|
---- TYPES
|
|
int, string, string
|
|
---- RESULTS
|
|
3,'3->253->503->753','01/03/10, 01/03/10, 01/03/10, 01/03/10'
|
|
5,'5->255->505->755','01/05/10, 01/05/10, 01/05/10, 01/05/10'
|
|
8,'8->258->508->758','01/08/10, 01/08/10, 01/08/10, 01/08/10'
|
|
4,'4->254->504->754','01/04/10, 01/04/10, 01/04/10, 01/04/10'
|
|
9,'9->259->509->759','01/09/10, 01/09/10, 01/09/10, 01/09/10'
|
|
2,'2->252->502->752','01/02/10, 01/02/10, 01/02/10, 01/02/10'
|
|
6,'6->256->506->756','01/06/10, 01/06/10, 01/06/10, 01/06/10'
|
|
10,'10->260->510->760','01/10/10, 01/10/10, 01/10/10, 01/10/10'
|
|
7,'7->257->507->757','01/07/10, 01/07/10, 01/07/10, 01/07/10'
|
|
1,'1->251->501->751','01/01/10, 01/01/10, 01/01/10, 01/01/10'
|
|
====
|
|
---- QUERY
|
|
# Test group_concat with null result
|
|
select group_concat(string_col) from alltypesagg where string_col = NULL;
|
|
---- TYPES
|
|
string
|
|
---- RESULTS
|
|
'NULL'
|
|
====
|
|
---- QUERY
|
|
# Test correct removal of redundant group-by expressions (IMPALA-817)
|
|
select int_col * int_col, int_col + int_col
|
|
from functional.alltypesagg
|
|
group by int_col * int_col, int_col + int_col, int_col * int_col
|
|
having (int_col + int_col) < 5 order by 1 limit 10
|
|
---- TYPES
|
|
bigint,bigint
|
|
---- RESULTS
|
|
1,2
|
|
4,4
|
|
====
|
|
---- QUERY
|
|
# Test that binding predicates on an aggregation properly trigger materialization of
|
|
# slots in the agg tuple and the slots needed for evaluating the corresponding agg funcs
|
|
# (IMPALA-822).
|
|
select 1 from
|
|
(select count(bigint_col) c from functional.alltypesagg
|
|
having min(int_col) is not null) as t
|
|
where c is not null
|
|
---- TYPES
|
|
tinyint
|
|
---- RESULTS
|
|
1
|
|
====
|
|
---- QUERY
|
|
# Regression test for subexpr elimination in codegen. IMPALA-765
|
|
select count(tinyint_col), sum(tinyint_col * tinyint_col) from alltypesagg
|
|
---- TYPES
|
|
bigint,bigint
|
|
---- RESULTS
|
|
9000,285000
|
|
====
|
|
---- QUERY
|
|
# Regression test for subexpr elimination in codegen. IMPALA-765
|
|
select count(int_col), sum(int_col), avg(int_col) from alltypesagg where int_col is NULL
|
|
---- TYPES
|
|
bigint,bigint,double
|
|
---- RESULTS
|
|
0,NULL,NULL
|
|
====
|
|
---- QUERY
|
|
# Regression test for subexpr elimination in codegen. IMPALA-850
|
|
select id % 2, int_col > 1, id from alltypesagg where id < 2 group by 1,2,3
|
|
---- TYPES
|
|
int,boolean,int
|
|
---- RESULTS
|
|
0,NULL,0
|
|
1,false,1
|
|
====
|
|
---- QUERY
|
|
# Regression test for min/max of all negative values. IMPALA-869.
|
|
select min(-1.0), max(-1.0) from tinytable
|
|
---- TYPES
|
|
float,float
|
|
---- RESULTS
|
|
-1,-1
|
|
====
|