9
9
set @sav_dpi= @@div_precision_increment;
10
10
set div_precision_increment= 5;
11
11
show variables like 'div_precision_increment';
12
create table t1 (grp int, a bigint unsigned, c char(10) not null);
12
create table t1 (grp int, a bigint, c char(10) not null);
13
13
insert into t1 values (1,1,"a");
14
14
insert into t1 values (2,2,"b");
15
15
insert into t1 values (2,3,"c");
27
27
insert into t1 values (null,null,'');
28
28
select count(distinct a),count(distinct grp) from t1;
30
select sum(all a),count(all a),avg(all a),std(all a),variance(all a),bit_or(all a),bit_and(all a),min(all a),max(all a),min(all c),max(all c) from t1;
31
select grp, sum(a),count(a),avg(a),std(a),variance(a),bit_or(a),bit_and(a),min(a),max(a),min(c),max(c) from t1 group by grp;
33
select grp, sum(a)+count(a)+avg(a)+std(a)+variance(a)+bit_or(a)+bit_and(a)+min(a)+max(a)+min(c)+max(c) as sum from t1 group by grp;
36
create table t2 (grp int, a bigint unsigned, c char(10));
30
create table t2 (grp int, a bigint, c char(10));
37
31
insert into t2 select grp,max(a)+max(grp),max(c) from t1 group by grp;
39
33
# REPLACE ... SELECT doesn't yet work with PS
46
40
# Problem with std()
49
CREATE TABLE t1 (id int(11),value1 float(10,2));
43
CREATE TABLE t1 (id int,value1 float(10,2));
50
44
INSERT INTO t1 VALUES (1,0.00),(1,1.00), (1,2.00), (2,10.00), (2,11.00), (2,12.00);
51
CREATE TABLE t2 (id int(11),name char(20));
45
CREATE TABLE t2 (id int,name char(20));
52
46
INSERT INTO t2 VALUES (1,'Set One'),(2,'Set Two');
53
47
select id, avg(value1), std(value1), variance(value1) from t1 group by id;
54
48
select name, avg(value1), std(value1), variance(value1) from t1, t2 where t1.id = t2.id group by t1.id;
147
141
drop table t1,t2;
150
# Test of group function and NULL values
153
CREATE TABLE t1 (a int, b int);
154
select count(b), sum(b), avg(b), std(b), min(b), max(b), bit_and(b), bit_or(b) from t1;
155
select a,count(b), sum(b), avg(b), std(b), min(b), max(b), bit_and(b), bit_or(b) from t1 group by a;
156
insert into t1 values (1,null);
157
select a,count(b), sum(b), avg(b), std(b), min(b), max(b), bit_and(b), bit_or(b) from t1 group by a;
158
insert into t1 values (1,null);
159
insert into t1 values (2,null);
160
select a,count(b), sum(b), avg(b), std(b), min(b), max(b), bit_and(b), bit_or(b) from t1 group by a;
161
select SQL_BIG_RESULT a,count(b), sum(b), avg(b), std(b), min(b), max(b), bit_and(b), bit_or(b) from t1 group by a;
162
insert into t1 values (2,1);
163
select a,count(b), sum(b), avg(b), std(b), min(b), max(b), bit_and(b), bit_or(b) from t1 group by a;
164
select SQL_BIG_RESULT a,count(b), sum(b), avg(b), std(b), min(b), max(b), bit_and(b), bit_or(b) from t1 group by a;
165
insert into t1 values (3,1);
166
select a,count(b), sum(b), avg(b), std(b), min(b), max(b), bit_and(b), bit_or(b) from t1 group by a;
167
select SQL_BIG_RESULT a,count(b), sum(b), avg(b), std(b), min(b), max(b), bit_and(b), bit_or(b), bit_xor(b) from t1 group by a;
168
explain extended select SQL_BIG_RESULT a,count(b), sum(b), avg(b), std(b), min(b), max(b), bit_and(b), bit_or(b), bit_xor(b) from t1 group by a;
172
# Bug #1972: test for bit_and(), bit_or() and negative values
174
create table t1 (col int);
175
insert into t1 values (-1), (-2), (-3);
176
select bit_and(col), bit_or(col) from t1;
177
select SQL_BIG_RESULT bit_and(col), bit_or(col) from t1 group by col;
181
144
# Bug #3376: avg() and an empty table
465
426
CREATE TABLE t1 (
466
id int(10) unsigned NOT NULL auto_increment,
427
id int NOT NULL auto_increment,
467
428
val enum('one','two','three') NOT NULL default 'one',
469
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
471
INSERT INTO t1 VALUES
472
(1,'one'),(2,'two'),(3,'three'),(4,'one'),(5,'two');
474
select val, count(*) from t1 group by val;
478
id int(10) unsigned NOT NULL auto_increment,
479
val set('one','two','three') NOT NULL default 'one',
481
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
483
INSERT INTO t1 VALUES
484
(1,'one'),(2,'two'),(3,'three'),(4,'one'),(5,'two');
432
INSERT INTO t1 VALUES
433
(1,'one'),(2,'two'),(3,'three'),(4,'one'),(5,'two');
486
435
select val, count(*) from t1 group by val;
563
512
EXPLAIN SELECT MAX(b) FROM t1;
566
CREATE TABLE t1 (id int , b varchar(512), INDEX(b(250))) COLLATE latin1_bin;
567
INSERT INTO t1 VALUES
568
(1,CONCAT(REPEAT('_', 250), "qq")), (1,CONCAT(REPEAT('_', 250), "zz")),
569
(1,CONCAT(REPEAT('_', 250), "aa")), (1,CONCAT(REPEAT('_', 250), "ff"));
571
SELECT MAX(b) FROM t1;
572
EXPLAIN SELECT MAX(b) FROM t1;
575
516
# Bug #16792 query with subselect, join, and group not returning proper values
580
521
SELECT (SELECT COUNT(DISTINCT t1.b)) FROM t1 GROUP BY t1.a;
581
522
SELECT (SELECT COUNT(DISTINCT 12)) FROM t1 GROUP BY t1.a;
582
523
# an attempt to test all aggregate function with no table.
583
SELECT AVG(2), BIT_AND(2), BIT_OR(2), BIT_XOR(2), COUNT(*), COUNT(12),
524
SELECT AVG(2), COUNT(*), COUNT(12),
584
525
COUNT(DISTINCT 12), MIN(2),MAX(2),STD(2), VARIANCE(2),SUM(2),
585
526
GROUP_CONCAT(2),GROUP_CONCAT(DISTINCT 2);
593
534
create table t2 (ff double);
594
535
insert into t2 values (2.2);
595
536
select cast(sum(distinct ff) as decimal(5,2)) from t2;
596
select cast(sum(distinct ff) as signed) from t2;
537
select sum(distinct ff) from t2;
597
538
select cast(variance(ff) as decimal(10,3)) from t2;
598
539
select cast(min(ff) as decimal(5,2)) from t2;
600
541
create table t1 (df decimal(5,1));
601
542
insert into t1 values(1.1);
602
543
insert into t1 values(2.2);
603
select cast(sum(distinct df) as signed) from t1;
604
select cast(min(df) as signed) from t1;
544
select sum(distinct df) from t1;
545
select min(df) from t1;
605
546
select 1e8 * sum(distinct df) from t1;
606
547
select 1e8 * min(df) from t1;
616
557
# BUG#3190, WL#1639: Standard Deviation STDDEV - 2 different calculations
619
CREATE TABLE t1 (id int(11),value1 float(10,2));
560
CREATE TABLE t1 (id int,value1 float(10,2));
620
561
INSERT INTO t1 VALUES (1,0.00),(1,1.00), (1,2.00), (2,10.00), (2,11.00), (2,12.00), (2,13.00);
621
562
select id, stddev_pop(value1), var_pop(value1), stddev_samp(value1), var_samp(value1) from t1 group by id;
710
651
# Bug#22555: STDDEV yields positive result for groups with only one row
713
create table bug22555 (i smallint primary key auto_increment, s1 smallint, s2 smallint, e decimal(30,10), o double);
654
create table bug22555 (i int primary key auto_increment, s1 int, s2 int, e decimal(30,10), o double);
714
655
insert into bug22555 (s1, s2, e, o) values (53, 78, 11.4276528, 6.828112), (17, 78, 5.916793, 1.8502951), (18, 76, 2.679231, 9.17975591), (31, 62, 6.07831, 0.1), (19, 41, 5.37463, 15.1), (83, 73, 14.567426, 7.959222), (92, 53, 6.10151, 13.1856852), (7, 12, 13.92272, 3.442007), (92, 35, 11.95358909, 6.01376678), (38, 84, 2.572, 7.904571);
715
656
select std(s1/s2) from bug22555 group by i;
716
657
select std(e) from bug22555 group by i;
717
658
select std(o) from bug22555 group by i;
718
659
drop table bug22555;
720
create table bug22555 (i smallint, s1 smallint, s2 smallint, o1 double, o2 double, e1 decimal, e2 decimal);
661
create table bug22555 (i int, s1 int, s2 int, o1 double, o2 double, e1 decimal, e2 decimal);
721
662
insert into bug22555 values (1,53,78,53,78,53,78),(2,17,78,17,78,17,78),(3,18,76,18,76,18,76);
722
663
select i, count(*) from bug22555 group by i;
723
664
select std(s1/s2) from bug22555 where i=1;
773
714
set @@div_precision_increment=@saved_div_precision_increment;
774
715
drop table bug22555;
776
create table bug22555 (s smallint, o double, e decimal);
717
create table bug22555 (s int, o double, e decimal);
777
718
insert into bug22555 values (1,1,1),(2,2,2),(3,3,3),(6,6,6),(7,7,7);
778
719
select var_samp(s), var_pop(s) from bug22555;
779
720
select var_samp(o), var_pop(o) from bug22555;
780
721
select var_samp(e), var_pop(e) from bug22555;
781
722
drop table bug22555;
783
create table bug22555 (s smallint, o double, e decimal);
724
create table bug22555 (s int, o double, e decimal);
784
725
insert into bug22555 values (null,null,null),(null,null,null);
785
726
select var_samp(s) as 'null', var_pop(s) as 'null' from bug22555;
786
727
select var_samp(o) as 'null', var_pop(o) as 'null' from bug22555;