1
drop table if exists t1,t2;
2
set @sav_dpi= @@div_precision_increment;
3
set div_precision_increment= 5;
4
show variables like 'div_precision_increment';
6
div_precision_increment 5
7
create table t1 (grp int, a bigint, c char(10) not null);
8
insert into t1 values (1,1,"a");
9
insert into t1 values (2,2,"b");
10
insert into t1 values (2,3,"c");
11
insert into t1 values (3,4,"E");
12
insert into t1 values (3,5,"C");
13
insert into t1 values (3,6,"D");
14
select a,c,sum(a) from t1 group by a;
22
select a,c,sum(a) from t1 where a > 10 group by a;
24
select sum(a) from t1 where a > 10;
27
select a from t1 order by rand(10);
35
select distinct a from t1 order by rand(10);
43
select count(distinct a),count(distinct grp) from t1;
44
count(distinct a) count(distinct grp)
46
insert into t1 values (null,null,'');
47
select count(distinct a),count(distinct grp) from t1;
48
count(distinct a) count(distinct grp)
50
create table t2 (grp int, a bigint, c char(10));
51
insert into t2 select grp,max(a)+max(grp),max(c) from t1 group by grp;
52
replace into t2 select grp, a, c from t1 limit 2,1;
61
CREATE TABLE t1 (id int,value1 float(10,2));
62
INSERT INTO t1 VALUES (1,0.00),(1,1.00), (1,2.00), (2,10.00), (2,11.00), (2,12.00);
63
CREATE TABLE t2 (id int,name char(20));
64
INSERT INTO t2 VALUES (1,'Set One'),(2,'Set Two');
65
select id, avg(value1), std(value1), variance(value1) from t1 group by id;
66
id avg(value1) std(value1) variance(value1)
67
1 1.0000000 0.816497 0.666667
68
2 11.0000000 0.816497 0.666667
69
select name, avg(value1), std(value1), variance(value1) from t1, t2 where t1.id = t2.id group by t1.id;
70
name avg(value1) std(value1) variance(value1)
71
Set One 1.0000000 0.816497 0.666667
72
Set Two 11.0000000 0.816497 0.666667
74
create table t1 (id int not null);
75
create table t2 (id int not null,rating int null);
76
insert into t1 values(1),(2),(3);
77
insert into t2 values(1, 3),(2, NULL),(2, NULL),(3, 2),(3, NULL);
78
select t1.id, avg(rating) from t1 left join t2 on ( t1.id = t2.id ) group by t1.id;
83
select sql_small_result t2.id, avg(rating) from t2 group by t2.id;
88
select sql_big_result t2.id, avg(rating) from t2 group by t2.id;
93
select sql_small_result t2.id, avg(rating+0.0e0) from t2 group by t2.id;
98
select sql_big_result t2.id, avg(rating+0.0e0) from t2 group by t2.id;
104
create table t1 (a int primary key, c char(10), b text);
105
INSERT INTO t1 VALUES (1,'1','1');
106
INSERT INTO t1 VALUES (2,'2','2');
107
INSERT INTO t1 VALUES (4,'4','4');
108
select count(*) from t1;
111
select count(*) from t1 where a = 1;
114
select count(*) from t1 where a = 100;
117
select count(*) from t1 where a >= 10;
120
select count(a) from t1 where a = 1;
123
select count(a) from t1 where a = 100;
126
select count(a) from t1 where a >= 10;
129
select count(b) from t1 where b >= 2;
132
select count(b) from t1 where b >= 10;
135
select count(c) from t1 where c = 10;
139
CREATE TABLE t1 (d DATETIME, i INT);
140
INSERT INTO t1 VALUES (NOW(), 1);
141
SELECT COUNT(i), i, COUNT(i)*i FROM t1 GROUP BY i;
142
COUNT(i) i COUNT(i)*i
144
SELECT COUNT(i), (i+0), COUNT(i)*(i+0) FROM t1 GROUP BY i;
145
COUNT(i) (i+0) COUNT(i)*(i+0)
152
insert into t1 values (10.3,'nem'),(20.53,'monty'),(30.23,'sinisa');
153
insert into t1 values (30.13,'nem'),(20.98,'monty'),(10.45,'sinisa');
154
insert into t1 values (5.2,'nem'),(8.64,'monty'),(11.12,'sinisa');
155
select sum(num) from t1;
158
select sum(num) from t1 group by user;
164
create table t1 (a1 int, a2 char(3), key k1(a1), key k2(a2));
165
insert into t1 values(10,'aaa'), (10,null), (10,'bbb'), (20,'zzz');
166
create table t2(a1 char(3), a2 int, a3 real, key k1(a1), key k2(a2, a1));
173
select min(a2) from t1;
176
select max(t1.a1), max(t2.a2) from t1, t2;
177
max(t1.a1) max(t2.a2)
179
select max(t1.a1) from t1, t2;
182
select max(t2.a2), max(t1.a1) from t1, t2;
183
max(t2.a2) max(t1.a1)
185
explain select min(a2) from t1;
186
id select_type table type possible_keys key key_len ref rows Extra
187
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
188
explain select max(t1.a1), max(t2.a2) from t1, t2;
189
id select_type table type possible_keys key key_len ref rows Extra
190
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No matching min/max row
191
insert into t2 values('AAA', 10, 0.5);
192
insert into t2 values('BBB', 20, 1.0);
193
select t1.a1, t1.a2, t2.a1, t2.a2 from t1,t2;
203
select max(t1.a1), max(t2.a1) from t1, t2 where t2.a2=9;
204
max(t1.a1) max(t2.a1)
206
select max(t2.a1), max(t1.a1) from t1, t2 where t2.a2=9;
207
max(t2.a1) max(t1.a1)
209
select t1.a1, t1.a2, t2.a1, t2.a2 from t1 left outer join t2 on t1.a1=10;
218
select max(t1.a2) from t1 left outer join t2 on t1.a1=10;
221
select max(t2.a1) from t2 left outer join t1 on t2.a2=10 where t2.a2=20;
224
select max(t2.a1) from t2 left outer join t1 on t2.a2=10 where t2.a2=10;
227
select max(t2.a1) from t1 left outer join t2 on t1.a2=t2.a1 and 1=0 where t2.a1='AAA';
230
select max(t1.a2),max(t2.a1) from t1 left outer join t2 on t1.a1=10;
231
max(t1.a2) max(t2.a1)
234
create table t1 (a int);
235
select avg(2) from t1;
240
a1 char(3) primary key,
250
a1 char(3) primary key,
257
insert into t1 values('AME',0,'SEA',0.100,date'1942-02-19');
258
insert into t1 values('HBR',1,'SEA',0.085,date'1948-03-05');
259
insert into t1 values('BOT',2,'SEA',0.085,date'1951-11-29');
260
insert into t1 values('BMC',3,'SEA',0.085,date'1958-09-08');
261
insert into t1 values('TWU',0,'LAX',0.080,date'1969-10-05');
262
insert into t1 values('BDL',0,'DEN',0.080,date'1960-11-27');
263
insert into t1 values('DTX',1,'NYC',0.080,date'1961-05-04');
264
insert into t1 values('PLS',1,'WDC',0.075,date'1949-01-02');
265
insert into t1 values('ZAJ',2,'CHI',0.075,date'1960-06-15');
266
insert into t1 values('VVV',2,'MIN',0.075,date'1959-06-28');
267
insert into t1 values('GTM',3,'DAL',0.070,date'1977-09-23');
268
insert into t1 values('SSJ',null,'CHI',null,date'1974-03-19');
269
insert into t1 values('KKK',3,'ATL',null,null);
270
insert into t1 values('XXX',null,'MIN',null,null);
271
insert into t1 values('WWW',1,'LED',null,null);
272
insert into t2 values('TKF','Seattle','WA','AME');
273
insert into t2 values('LCC','Los Angeles','CA','TWU');
274
insert into t2 values('DEN','Denver','CO','BDL');
275
insert into t2 values('SDC','San Diego','CA','TWU');
276
insert into t2 values('NOL','New Orleans','LA','GTM');
277
insert into t2 values('LAK','Los Angeles','CA','TWU');
278
insert into t2 values('AAA','AAA','AA','AME');
281
AME 0 SEA 0.1 1942-02-19
282
BDL 0 DEN 0.08 1960-11-27
283
BMC 3 SEA 0.085 1958-09-08
284
BOT 2 SEA 0.085 1951-11-29
285
DTX 1 NYC 0.08 1961-05-04
286
GTM 3 DAL 0.07 1977-09-23
287
HBR 1 SEA 0.085 1948-03-05
289
PLS 1 WDC 0.075 1949-01-02
290
SSJ NULL CHI NULL 1974-03-19
291
TWU 0 LAX 0.08 1969-10-05
292
VVV 2 MIN 0.075 1959-06-28
294
XXX NULL MIN NULL NULL
295
ZAJ 2 CHI 0.075 1960-06-15
300
LAK Los Angeles CA TWU
301
LCC Los Angeles CA TWU
302
NOL New Orleans LA GTM
306
select min(a1) from t1;
307
id select_type table type possible_keys key key_len ref rows Extra
308
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
309
select min(a1) from t1;
313
select max(a4) from t1;
314
id select_type table type possible_keys key key_len ref rows Extra
315
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
316
select max(a4) from t1;
320
select min(a5), max(a5) from t1;
321
id select_type table type possible_keys key key_len ref rows Extra
322
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
323
select min(a5), max(a5) from t1;
325
1942-02-19 1977-09-23
327
select min(a3) from t1 where a2 = 2;
328
id select_type table type possible_keys key key_len ref rows Extra
329
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
330
select min(a3) from t1 where a2 = 2;
334
select min(a1), max(a1) from t1 where a4 = 0.080;
335
id select_type table type possible_keys key key_len ref rows Extra
336
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
337
select min(a1), max(a1) from t1 where a4 = 0.080;
341
select min(t1.a5), max(t2.a3) from t1, t2;
342
id select_type table type possible_keys key key_len ref rows Extra
343
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
344
select min(t1.a5), max(t2.a3) from t1, t2;
345
min(t1.a5) max(t2.a3)
348
select min(t1.a3), max(t2.a2) from t1, t2 where t1.a2 = 0 and t2.a3 = 'CA';
349
id select_type table type possible_keys key key_len ref rows Extra
350
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
351
select min(t1.a3), max(t2.a2) from t1, t2 where t1.a2 = 0 and t2.a3 = 'CA';
352
min(t1.a3) max(t2.a2)
355
select min(a1) from t1 where a1 > 'KKK';
356
id select_type table type possible_keys key key_len ref rows Extra
357
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
358
select min(a1) from t1 where a1 > 'KKK';
362
select min(a1) from t1 where a1 >= 'KKK';
363
id select_type table type possible_keys key key_len ref rows Extra
364
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
365
select min(a1) from t1 where a1 >= 'KKK';
369
select max(a3) from t1 where a2 = 2 and a3 < 'SEA';
370
id select_type table type possible_keys key key_len ref rows Extra
371
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
372
select max(a3) from t1 where a2 = 2 and a3 < 'SEA';
376
select max(a5) from t1 where a5 < date'1970-01-01';
377
id select_type table type possible_keys key key_len ref rows Extra
378
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
379
select max(a5) from t1 where a5 < date'1970-01-01';
383
select max(a3) from t1 where a2 is null;
384
id select_type table type possible_keys key key_len ref rows Extra
385
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
386
select max(a3) from t1 where a2 is null;
390
select max(a3) from t1 where a2 = 0 and a3 between 'K' and 'Q';
391
id select_type table type possible_keys key key_len ref rows Extra
392
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
393
select max(a3) from t1 where a2 = 0 and a3 between 'K' and 'Q';
397
select min(a1), max(a1) from t1 where a1 between 'A' and 'P';
398
id select_type table type possible_keys key key_len ref rows Extra
399
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
400
select min(a1), max(a1) from t1 where a1 between 'A' and 'P';
404
select max(a3) from t1 where a3 < 'SEA' and a2 = 2 and a3 <= 'MIN';
405
id select_type table type possible_keys key key_len ref rows Extra
406
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
407
select max(a3) from t1 where a3 < 'SEA' and a2 = 2 and a3 <= 'MIN';
411
select max(a3) from t1 where a3 = 'MIN' and a2 = 2;
412
id select_type table type possible_keys key key_len ref rows Extra
413
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
414
select max(a3) from t1 where a3 = 'MIN' and a2 = 2;
418
select max(a3) from t1 where a3 = 'DEN' and a2 = 2;
419
id select_type table type possible_keys key key_len ref rows Extra
420
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No matching min/max row
421
select max(a3) from t1 where a3 = 'DEN' and a2 = 2;
425
select max(t1.a3), min(t2.a2) from t1, t2 where t1.a2 = 2 and t1.a3 < 'MIN' and t2.a3 = 'CA';
426
id select_type table type possible_keys key key_len ref rows Extra
427
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
428
select max(t1.a3), min(t2.a2) from t1, t2 where t1.a2 = 2 and t1.a3 < 'MIN' and t2.a3 = 'CA';
429
max(t1.a3) min(t2.a2)
432
select max(a3) from t1 where a2 is null and a2 = 2;
433
id select_type table type possible_keys key key_len ref rows Extra
434
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
435
select max(a3) from t1 where a2 is null and a2 = 2;
439
select max(a2) from t1 where a2 >= 1;
440
id select_type table type possible_keys key key_len ref rows Extra
441
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
442
select max(a2) from t1 where a2 >= 1;
446
select min(a3) from t1 where a2 = 2 and a3 < 'SEA';
447
id select_type table type possible_keys key key_len ref rows Extra
448
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
449
select min(a3) from t1 where a2 = 2 and a3 < 'SEA';
453
select min(a3) from t1 where a2 = 4;
454
id select_type table type possible_keys key key_len ref rows Extra
455
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No matching min/max row
456
select min(a3) from t1 where a2 = 4;
460
select min(a3) from t1 where a2 = 2 and a3 > 'SEA';
461
id select_type table type possible_keys key key_len ref rows Extra
462
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No matching min/max row
463
select min(a3) from t1 where a2 = 2 and a3 > 'SEA';
467
select (min(a4)+max(a4))/2 from t1;
468
id select_type table type possible_keys key key_len ref rows Extra
469
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
470
select (min(a4)+max(a4))/2 from t1;
474
select min(a3) from t1 where 2 = a2;
475
id select_type table type possible_keys key key_len ref rows Extra
476
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
477
select min(a3) from t1 where 2 = a2;
481
select max(a3) from t1 where a2 = 2 and 'SEA' > a3;
482
id select_type table type possible_keys key key_len ref rows Extra
483
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
484
select max(a3) from t1 where a2 = 2 and 'SEA' > a3;
488
select max(a3) from t1 where a2 = 2 and 'SEA' < a3;
489
id select_type table type possible_keys key key_len ref rows Extra
490
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No matching min/max row
491
select max(a3) from t1 where a2 = 2 and 'SEA' < a3;
495
select min(a3) from t1 where a2 = 2 and a3 >= 'CHI';
496
id select_type table type possible_keys key key_len ref rows Extra
497
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
498
select min(a3) from t1 where a2 = 2 and a3 >= 'CHI';
502
select min(a3) from t1 where a2 = 2 and a3 >= 'CHI' and a3 < 'SEA';
503
id select_type table type possible_keys key key_len ref rows Extra
504
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
505
select min(a3) from t1 where a2 = 2 and a3 >= 'CHI' and a3 < 'SEA';
509
select min(a3) from t1 where a2 = 2 and a3 >= 'CHI' and a3 = 'MIN';
510
id select_type table type possible_keys key key_len ref rows Extra
511
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
512
select min(a3) from t1 where a2 = 2 and a3 >= 'CHI' and a3 = 'MIN';
516
select min(a3) from t1 where a2 = 2 and a3 >= 'SEA' and a3 = 'MIN';
517
id select_type table type possible_keys key key_len ref rows Extra
518
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
519
select min(a3) from t1 where a2 = 2 and a3 >= 'SEA' and a3 = 'MIN';
523
select min(t1.a1), min(t2.a4) from t1,t2 where t1.a1 < 'KKK' and t2.a4 < 'KKK';
524
id select_type table type possible_keys key key_len ref rows Extra
525
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
526
select min(t1.a1), min(t2.a4) from t1,t2 where t1.a1 < 'KKK' and t2.a4 < 'KKK';
527
min(t1.a1) min(t2.a4)
530
select min(a1) from t1 where a1 > 'KKK' or a1 < 'XXX';
531
id select_type table type possible_keys key key_len ref rows Extra
532
1 SIMPLE t1 range PRIMARY PRIMARY 0 NULL 7 Using where; Using index
534
select min(a1) from t1 where a1 != 'KKK';
535
id select_type table type possible_keys key key_len ref rows Extra
536
1 SIMPLE t1 index PRIMARY PRIMARY 14 NULL 15 Using where; Using index
538
select max(a3) from t1 where a2 < 2 and a3 < 'SEA';
539
id select_type table type possible_keys key key_len ref rows Extra
540
1 SIMPLE t1 range k1 k1 5 NULL 6 Using where; Using index
542
select max(t1.a3), min(t2.a2) from t1, t2 where t1.a2 = 2 and t1.a3 < 'MIN' and t2.a3 > 'CA';
543
id select_type table type possible_keys key key_len ref rows Extra
544
1 SIMPLE t1 range k1 k1 20 NULL 1 Using where; Using index
545
1 SIMPLE t2 range k1 k1 11 NULL 3 Using where; Using index; Using join buffer
547
select min(a4 - 0.01) from t1;
548
id select_type table type possible_keys key key_len ref rows Extra
549
1 SIMPLE t1 index NULL PRIMARY 14 NULL 15
551
select max(a4 + 0.01) from t1;
552
id select_type table type possible_keys key key_len ref rows Extra
553
1 SIMPLE t1 index NULL PRIMARY 14 NULL 15
555
select min(a3) from t1 where (a2 +1 ) is null;
556
id select_type table type possible_keys key key_len ref rows Extra
557
1 SIMPLE t1 index NULL PRIMARY 14 NULL 15 Using where
559
select min(a3) from t1 where (a2 + 1) = 2;
560
id select_type table type possible_keys key key_len ref rows Extra
561
1 SIMPLE t1 index NULL PRIMARY 14 NULL 15 Using where
563
select min(a3) from t1 where 2 = (a2 + 1);
564
id select_type table type possible_keys key key_len ref rows Extra
565
1 SIMPLE t1 index NULL PRIMARY 14 NULL 15 Using where
567
select min(a2) from t1 where a2 < 2 * a2 - 8;
568
id select_type table type possible_keys key key_len ref rows Extra
569
1 SIMPLE t1 index NULL PRIMARY 14 NULL 15 Using where
571
select min(a1) from t1 where a1 between a3 and 'KKK';
572
id select_type table type possible_keys key key_len ref rows Extra
573
1 SIMPLE t1 index PRIMARY PRIMARY 14 NULL 15 Using where
575
select min(a4) from t1 where (a4 + 0.01) between 0.07 and 0.08;
576
id select_type table type possible_keys key key_len ref rows Extra
577
1 SIMPLE t1 index NULL PRIMARY 14 NULL 15 Using where
579
select concat(min(t1.a1),min(t2.a4)) from t1, t2 where t2.a4 <> 'AME';
580
id select_type table type possible_keys key key_len ref rows Extra
581
1 SIMPLE t2 index k2 PRIMARY 14 NULL 7 Using where
582
1 SIMPLE t1 index NULL PRIMARY 14 NULL 15 Using index; Using join buffer
584
create table t1 (a char(10));
585
insert into t1 values ('a'),('b'),('c');
586
select coercibility(max(a)) from t1;
590
create table t1 (a char);
591
insert into t1 values ('a'),('b');
592
show create table t1;
594
t1 CREATE TABLE `t1` (
597
create table t2 select max(a),min(a) from t1;
598
show create table t2;
600
t2 CREATE TABLE `t2` (
605
create table t2 select concat(a) from t1;
606
show create table t2;
608
t2 CREATE TABLE `t2` (
609
`concat(a)` varchar(1)
612
create table t1 (a int);
613
insert into t1 values (1);
614
select max(a) as b from t1 having b=1;
617
select a from t1 having a=1;
621
create table t1 (a int);
622
select variance(2) from t1;
625
select stddev(2) from t1;
629
create table t1 (a int);
630
insert into t1 values (1),(2);
631
SELECT COUNT(*) FROM t1;
634
SELECT COUNT(*) FROM t1;
637
SELECT COUNT(*) FROM t1;
641
create table t1 (a int, primary key(a));
642
insert into t1 values (1),(2);
643
SELECT max(a) FROM t1;
646
SELECT max(a) FROM t1;
649
SELECT max(a) FROM t1;
653
CREATE TABLE t1 (a int primary key);
654
INSERT INTO t1 VALUES (1),(2),(3),(4);
655
SELECT MAX(a) FROM t1 WHERE a > 5;
658
SELECT MIN(a) FROM t1 WHERE a < 0;
663
id int NOT NULL auto_increment,
664
val enum('one','two','three') NOT NULL default 'one',
667
INSERT INTO t1 VALUES
668
(1,'one'),(2,'two'),(3,'three'),(4,'one'),(5,'two');
669
select val, count(*) from t1 group by val;
675
create table t1(a int, b datetime);
676
insert into t1 values (1, NOW()), (2, NOW());
677
create table t2 select MAX(b) from t1 group by a;
678
show create table t2;
680
t2 CREATE TABLE `t2` (
684
create table t1(f1 datetime);
685
insert into t1 values (now());
686
create table t2 select f2 from (select max(now()) f2 from t1) a;
687
show columns from t2;
688
Field Type Null Key Default Extra
691
create table t2 select f2 from (select now() f2 from t1) a;
692
show columns from t2;
693
Field Type Null Key Default Extra
700
INDEX i_b_id(a,b,id),
703
INSERT INTO t1 VALUES
704
(1,1,4), (2,2,1), (3,1,3), (4,2,1), (5,1,1);
705
SELECT MAX(id) FROM t1 WHERE id < 3 AND a=2 AND b=6;
716
INSERT INTO t1 VALUES
717
(1,1,4), (2,2,1), (3,1,3), (4,2,1), (5,1,1);
718
SELECT MAX(id) FROM t1 WHERE id < 3 AND a=2 AND b=6;
722
CREATE TABLE t1 (id int PRIMARY KEY, b char(3), INDEX(b));
723
INSERT INTO t1 VALUES (1,'xx'), (2,'aa');
728
SELECT MAX(b) FROM t1 WHERE b < 'ppppp';
733
SELECT MAX(b) FROM t1 WHERE b < 'pp';
737
CREATE TABLE t1 (id int PRIMARY KEY, b char(16), INDEX(b(4)));
738
INSERT INTO t1 VALUES (1, 'xxxxbbbb'), (2, 'xxxxaaaa');
739
SELECT MAX(b) FROM t1;
742
EXPLAIN SELECT MAX(b) FROM t1;
743
id select_type table type possible_keys key key_len ref rows Extra
744
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
746
CREATE TABLE t1 (a INT, b INT);
747
INSERT INTO t1 VALUES (1,1),(1,2),(2,3);
748
SELECT (SELECT COUNT(DISTINCT t1.b)) FROM t1 GROUP BY t1.a;
749
(SELECT COUNT(DISTINCT t1.b))
752
SELECT (SELECT COUNT(DISTINCT 12)) FROM t1 GROUP BY t1.a;
753
(SELECT COUNT(DISTINCT 12))
756
SELECT AVG(2), COUNT(*), COUNT(12),
757
COUNT(DISTINCT 12), MIN(2),MAX(2),STD(2), VARIANCE(2),SUM(2),
758
GROUP_CONCAT(2),GROUP_CONCAT(DISTINCT 2);
759
AVG(2) COUNT(*) COUNT(12) COUNT(DISTINCT 12) MIN(2) MAX(2) STD(2) VARIANCE(2) SUM(2) GROUP_CONCAT(2) GROUP_CONCAT(DISTINCT 2)
760
2.00000 1 1 1 2 2 0.00000 0.00000 2 2 2
762
create table t2 (ff double);
763
insert into t2 values (2.2);
764
select cast(sum(distinct ff) as decimal(5,2)) from t2;
765
cast(sum(distinct ff) as decimal(5,2))
767
select sum(distinct ff) from t2;
770
select cast(variance(ff) as decimal(10,3)) from t2;
771
cast(variance(ff) as decimal(10,3))
773
select cast(min(ff) as decimal(5,2)) from t2;
774
cast(min(ff) as decimal(5,2))
776
create table t1 (df decimal(5,1));
777
insert into t1 values(1.1);
778
insert into t1 values(2.2);
779
select sum(distinct df) from t1;
782
select min(df) from t1;
785
select 1e8 * sum(distinct df) from t1;
786
1e8 * sum(distinct df)
788
select 1e8 * min(df) from t1;
791
create table t3 (ifl int);
792
insert into t3 values(1), (2);
793
select cast(min(ifl) as decimal(5,2)) from t3;
794
cast(min(ifl) as decimal(5,2))
796
drop table t1, t2, t3;
797
CREATE TABLE t1 (id int,value1 float(10,2));
798
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);
799
select id, stddev_pop(value1), var_pop(value1), stddev_samp(value1), var_samp(value1) from t1 group by id;
800
id stddev_pop(value1) var_pop(value1) stddev_samp(value1) var_samp(value1)
801
1 0.816497 0.666667 1.000000 1.000000
802
2 1.118034 1.250000 1.290994 1.666667
804
CREATE TABLE t1 (col1 decimal(16,12));
805
INSERT INTO t1 VALUES (-5.00000000001),(-5.00000000002),(-5.00000000003),(-5.00000000000),(-5.00000000001),(-5.00000000002);
806
insert into t1 select * from t1;
807
select col1,count(col1),sum(col1),avg(col1) from t1 group by col1;
808
col1 count(col1) sum(col1) avg(col1)
809
-5.000000000030 2 -10.000000000060 -5.00000000003000000
810
-5.000000000020 4 -20.000000000080 -5.00000000002000000
811
-5.000000000010 4 -20.000000000040 -5.00000000001000000
812
-5.000000000000 2 -10.000000000000 -5.00000000000000000
814
create table t1 (col1 decimal(16,12));
815
insert into t1 values (-5.00000000001);
816
insert into t1 values (-5.00000000001);
817
select col1,sum(col1),max(col1),min(col1) from t1 group by col1;
818
col1 sum(col1) max(col1) min(col1)
819
-5.000000000010 -10.000000000020 -5.000000000010 -5.000000000010
821
insert into t1 values (5.00000000001);
822
insert into t1 values (5.00000000001);
823
select col1,sum(col1),max(col1),min(col1) from t1 group by col1;
824
col1 sum(col1) max(col1) min(col1)
825
5.000000000010 10.000000000020 5.000000000010 5.000000000010
827
CREATE TABLE t1 (a VARCHAR(400));
828
INSERT INTO t1 (a) VALUES ("A"), ("a"), ("a "), ("a "),
829
("B"), ("b"), ("b "), ("b ");
830
SELECT COUNT(DISTINCT a) FROM t1;
834
CREATE TABLE t1 (a int, b int, c int);
835
INSERT INTO t1 (a, b, c) VALUES
836
(1,1,1), (1,1,2), (1,1,3),
837
(1,2,1), (1,2,2), (1,2,3),
838
(1,3,1), (1,3,2), (1,3,3),
839
(2,1,1), (2,1,2), (2,1,3),
840
(2,2,1), (2,2,2), (2,2,3),
841
(2,3,1), (2,3,2), (2,3,3),
842
(3,1,1), (3,1,2), (3,1,3),
843
(3,2,1), (3,2,2), (3,2,3),
844
(3,3,1), (3,3,2), (3,3,3);
845
SELECT b/c as v, a FROM t1 ORDER BY v;
874
SELECT b/c as v, SUM(a) FROM t1 GROUP BY v;
883
SELECT SUM(a) FROM t1 GROUP BY b/c;
893
set div_precision_increment= @sav_dpi;
894
CREATE TABLE t1 (a INT PRIMARY KEY, b INT);
895
INSERT INTO t1 VALUES (1,1), (2,2);
896
CREATE TABLE t2 (a INT PRIMARY KEY, b INT);
897
INSERT INTO t2 VALUES (1,1), (3,3);
899
(SELECT SUM(c.a) FROM t1 ttt, t2 ccc
900
WHERE ttt.a = ccc.b AND ttt.a = t.a GROUP BY ttt.a) AS minid
901
FROM t1 t, t2 c WHERE t.a = c.b;
905
create table t1 select variance(0);
906
show create table t1;
908
t1 CREATE TABLE `t1` (
909
`variance(0)` double(8,4)
912
create table t1 select stddev(0);
913
show create table t1;
915
t1 CREATE TABLE `t1` (
916
`stddev(0)` double(8,4)
919
create table bug22555 (i int primary key auto_increment, s1 int, s2 int, e decimal(30,10), o double);
920
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);
921
select std(s1/s2) from bug22555 group by i;
933
select std(e) from bug22555 group by i;
945
select std(o) from bug22555 group by i;
958
create table bug22555 (i int, s1 int, s2 int, o1 double, o2 double, e1 decimal, e2 decimal);
959
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);
960
select i, count(*) from bug22555 group by i;
965
select std(s1/s2) from bug22555 where i=1;
968
select std(s1/s2) from bug22555 where i=2;
971
select std(s1/s2) from bug22555 where i=3;
974
select std(s1/s2) from bug22555 where i=1 group by i;
977
select std(s1/s2) from bug22555 where i=2 group by i;
980
select std(s1/s2) from bug22555 where i=3 group by i;
983
select std(s1/s2) from bug22555 group by i order by i;
988
select i, count(*), std(o1/o2) from bug22555 group by i order by i;
989
i count(*) std(o1/o2)
993
select i, count(*), std(e1/e2) from bug22555 group by i order by i;
994
i count(*) std(e1/e2)
998
set @saved_div_precision_increment=@@div_precision_increment;
999
set div_precision_increment=19;
1000
select i, count(*), variance(s1/s2) from bug22555 group by i order by i;
1001
i count(*) variance(s1/s2)
1002
1 1 0.000000000000000000000000000000
1003
2 1 0.000000000000000000000000000000
1004
3 1 0.000000000000000000000000000000
1005
select i, count(*), variance(o1/o2) from bug22555 group by i order by i;
1006
i count(*) variance(o1/o2)
1010
select i, count(*), variance(e1/e2) from bug22555 group by i order by i;
1011
i count(*) variance(e1/e2)
1012
1 1 0.000000000000000000000000000000
1013
2 1 0.000000000000000000000000000000
1014
3 1 0.000000000000000000000000000000
1015
select i, count(*), std(s1/s2) from bug22555 group by i order by i;
1016
i count(*) std(s1/s2)
1017
1 1 0.000000000000000000000000000000
1018
2 1 0.000000000000000000000000000000
1019
3 1 0.000000000000000000000000000000
1020
select i, count(*), std(o1/o2) from bug22555 group by i order by i;
1021
i count(*) std(o1/o2)
1025
select i, count(*), std(e1/e2) from bug22555 group by i order by i;
1026
i count(*) std(e1/e2)
1027
1 1 0.000000000000000000000000000000
1028
2 1 0.000000000000000000000000000000
1029
3 1 0.000000000000000000000000000000
1030
set div_precision_increment=20;
1031
select i, count(*), variance(s1/s2) from bug22555 group by i order by i;
1032
i count(*) variance(s1/s2)
1033
1 1 0.000000000000000000000000000000
1034
2 1 0.000000000000000000000000000000
1035
3 1 0.000000000000000000000000000000
1036
select i, count(*), variance(o1/o2) from bug22555 group by i order by i;
1037
i count(*) variance(o1/o2)
1041
select i, count(*), variance(e1/e2) from bug22555 group by i order by i;
1042
i count(*) variance(e1/e2)
1043
1 1 0.000000000000000000000000000000
1044
2 1 0.000000000000000000000000000000
1045
3 1 0.000000000000000000000000000000
1046
select i, count(*), std(s1/s2) from bug22555 group by i order by i;
1047
i count(*) std(s1/s2)
1048
1 1 0.000000000000000000000000000000
1049
2 1 0.000000000000000000000000000000
1050
3 1 0.000000000000000000000000000000
1051
select i, count(*), std(o1/o2) from bug22555 group by i order by i;
1052
i count(*) std(o1/o2)
1056
select i, count(*), std(e1/e2) from bug22555 group by i order by i;
1057
i count(*) std(e1/e2)
1058
1 1 0.000000000000000000000000000000
1059
2 1 0.000000000000000000000000000000
1060
3 1 0.000000000000000000000000000000
1061
set @@div_precision_increment=@saved_div_precision_increment;
1062
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);
1063
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);
1064
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);
1065
select i, count(*), std(s1/s2) from bug22555 group by i order by i;
1066
i count(*) std(s1/s2)
1070
select i, count(*), round(std(o1/o2), 16) from bug22555 group by i order by i;
1071
i count(*) round(std(o1/o2), 16)
1072
1 4 0.0000000000000000
1073
2 4 0.0000000000000000
1074
3 4 0.0000000000000000
1075
select i, count(*), std(e1/e2) from bug22555 group by i order by i;
1076
i count(*) std(e1/e2)
1080
select std(s1/s2) from bug22555;
1083
select std(o1/o2) from bug22555;
1086
select std(e1/e2) from bug22555;
1089
set @saved_div_precision_increment=@@div_precision_increment;
1090
set div_precision_increment=19;
1091
select i, count(*), std(s1/s2) from bug22555 group by i order by i;
1092
i count(*) std(s1/s2)
1093
1 4 0.000000000000000000000000000000
1094
2 4 0.000000000000000000000000000000
1095
3 4 0.000000000000000000000000000000
1096
select i, count(*), round(std(o1/o2), 16) from bug22555 group by i order by i;
1097
i count(*) round(std(o1/o2), 16)
1098
1 4 0.0000000000000000
1099
2 4 0.0000000000000000
1100
3 4 0.0000000000000000
1101
select i, count(*), std(e1/e2) from bug22555 group by i order by i;
1102
i count(*) std(e1/e2)
1103
1 4 0.000000000000000000000000000000
1104
2 4 0.000000000000000000000000000000
1105
3 4 0.000000000000000000000000000000
1106
select round(std(s1/s2), 17) from bug22555;
1107
round(std(s1/s2), 17)
1109
select std(o1/o2) from bug22555;
1112
select round(std(e1/e2), 17) from bug22555;
1113
round(std(e1/e2), 17)
1115
set div_precision_increment=20;
1116
select i, count(*), std(s1/s2) from bug22555 group by i order by i;
1117
i count(*) std(s1/s2)
1118
1 4 0.000000000000000000000000000000
1119
2 4 0.000000000000000000000000000000
1120
3 4 0.000000000000000000000000000000
1121
select i, count(*), round(std(o1/o2), 16) from bug22555 group by i order by i;
1122
i count(*) round(std(o1/o2), 16)
1123
1 4 0.0000000000000000
1124
2 4 0.0000000000000000
1125
3 4 0.0000000000000000
1126
select i, count(*), std(e1/e2) from bug22555 group by i order by i;
1127
i count(*) std(e1/e2)
1128
1 4 0.000000000000000000000000000000
1129
2 4 0.000000000000000000000000000000
1130
3 4 0.000000000000000000000000000000
1131
select round(std(s1/s2), 17) from bug22555;
1132
round(std(s1/s2), 17)
1134
select std(o1/o2) from bug22555;
1137
select round(std(e1/e2), 17) from bug22555;
1138
round(std(e1/e2), 17)
1140
set @@div_precision_increment=@saved_div_precision_increment;
1141
drop table bug22555;
1142
create table bug22555 (s int, o double, e decimal);
1143
insert into bug22555 values (1,1,1),(2,2,2),(3,3,3),(6,6,6),(7,7,7);
1144
select var_samp(s), var_pop(s) from bug22555;
1145
var_samp(s) var_pop(s)
1147
select var_samp(o), var_pop(o) from bug22555;
1148
var_samp(o) var_pop(o)
1150
select var_samp(e), var_pop(e) from bug22555;
1151
var_samp(e) var_pop(e)
1153
drop table bug22555;
1154
create table bug22555 (s int, o double, e decimal);
1155
insert into bug22555 values (null,null,null),(null,null,null);
1156
select var_samp(s) as 'null', var_pop(s) as 'null' from bug22555;
1159
select var_samp(o) as 'null', var_pop(o) as 'null' from bug22555;
1162
select var_samp(e) as 'null', var_pop(e) as 'null' from bug22555;
1165
insert into bug22555 values (1,1,1);
1166
select var_samp(s) as 'null', var_pop(s) as '0' from bug22555;
1169
select var_samp(o) as 'null', var_pop(o) as '0' from bug22555;
1172
select var_samp(e) as 'null', var_pop(e) as '0' from bug22555;
1175
insert into bug22555 values (2,2,2);
1176
select var_samp(s) as '0.5', var_pop(s) as '0.25' from bug22555;
1179
select var_samp(o) as '0.5', var_pop(o) as '0.25' from bug22555;
1182
select var_samp(e) as '0.5', var_pop(e) as '0.25' from bug22555;
1185
drop table bug22555;
1186
create table t1 (a decimal(20));
1187
insert into t1 values (12345678901234567890);
1188
select count(a) from t1;
1191
select count(distinct a) from t1;
1195
CREATE TABLE t1 (a INT, b INT);
1196
INSERT INTO t1 VALUES (1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8);
1197
INSERT INTO t1 SELECT a, b+8 FROM t1;
1198
INSERT INTO t1 SELECT a, b+16 FROM t1;
1199
INSERT INTO t1 SELECT a, b+32 FROM t1;
1200
INSERT INTO t1 SELECT a, b+64 FROM t1;
1201
INSERT INTO t1 SELECT a, b+128 FROM t1;
1202
INSERT INTO t1 SELECT a, b+256 FROM t1;
1203
INSERT INTO t1 SELECT a, b+512 FROM t1;
1204
INSERT INTO t1 SELECT a, b+1024 FROM t1;
1205
INSERT INTO t1 SELECT a, b+2048 FROM t1;
1206
INSERT INTO t1 SELECT a, b+4096 FROM t1;
1207
INSERT INTO t1 SELECT a, b+8192 FROM t1;
1208
INSERT INTO t1 SELECT a, b+16384 FROM t1;
1209
INSERT INTO t1 SELECT a, b+32768 FROM t1;
1210
SELECT a,COUNT(DISTINCT b) AS cnt FROM t1 GROUP BY a HAVING cnt > 50;
1213
SELECT a,SUM(DISTINCT b) AS sumation FROM t1 GROUP BY a HAVING sumation > 50;
1216
SELECT a,AVG(DISTINCT b) AS average FROM t1 GROUP BY a HAVING average > 50;
1220
CREATE TABLE t1 ( a INT, b INT, KEY(a) );
1221
INSERT INTO t1 VALUES (NULL, 1), (NULL, 2);
1222
EXPLAIN SELECT MIN(a), MIN(b) FROM t1;
1223
id select_type table type possible_keys key key_len ref rows Extra
1224
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
1225
SELECT MIN(a), MIN(b) FROM t1;
1228
CREATE TABLE t2( a INT, b INT, c INT, KEY(a, b) );
1229
INSERT INTO t2 ( a, b, c ) VALUES ( 1, NULL, 2 ), ( 1, 3, 4 ), ( 1, 4, 4 );
1230
EXPLAIN SELECT MIN(b), MIN(c) FROM t2 WHERE a = 1;
1231
id select_type table type possible_keys key key_len ref rows Extra
1232
1 SIMPLE t2 ref a a 5 const 1
1233
SELECT MIN(b), MIN(c) FROM t2 WHERE a = 1;
1236
CREATE TABLE t3 (a INT, b INT, c int, KEY(a, b));
1237
INSERT INTO t3 VALUES (1, NULL, 1), (2, NULL, 2), (2, NULL, 2), (3, NULL, 3);
1238
EXPLAIN SELECT MIN(a), MIN(b) FROM t3 where a = 2;
1239
id select_type table type possible_keys key key_len ref rows Extra
1240
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
1241
SELECT MIN(a), MIN(b) FROM t3 where a = 2;
1244
CREATE TABLE t4 (a INT, b INT, c int, KEY(a, b));
1245
INSERT INTO t4 VALUES (1, 1, 1), (2, NULL, 2), (2, NULL, 2), (3, 1, 3);
1246
EXPLAIN SELECT MIN(a), MIN(b) FROM t4 where a = 2;
1247
id select_type table type possible_keys key key_len ref rows Extra
1248
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
1249
SELECT MIN(a), MIN(b) FROM t4 where a = 2;
1252
SELECT MIN(b), min(c) FROM t4 where a = 2;
1255
CREATE TABLE t5( a INT, b INT, KEY( a, b) );
1256
INSERT INTO t5 VALUES( 1, 1 ), ( 1, 2 );
1257
EXPLAIN SELECT MIN(a), MIN(b) FROM t5 WHERE a = 1;
1258
id select_type table type possible_keys key key_len ref rows Extra
1259
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
1260
SELECT MIN(a), MIN(b) FROM t5 WHERE a = 1;
1263
SELECT MIN(a), MIN(b) FROM t5 WHERE a = 1 and b > 1;
1266
DROP TABLE t1, t2, t3, t4, t5;
1267
CREATE TABLE t1 (a int, b date NOT NULL, KEY k1 (a,b));
1268
SELECT MIN(b) FROM t1 WHERE a=1 AND b>'2007-08-01';
1272
CREATE TABLE t1(a DOUBLE);
1273
INSERT INTO t1 VALUES (10), (20);
1274
SELECT AVG(a), CAST(AVG(a) AS DECIMAL) FROM t1;
1275
AVG(a) CAST(AVG(a) AS DECIMAL)