2002-08-30 20:32:59 +02:00
drop table if exists t1,t2;
2001-09-28 07:05:54 +02:00
create table t1 (grp int, a bigint unsigned, c char(10) not null);
insert into t1 values (1,1,"a");
insert into t1 values (2,2,"b");
insert into t1 values (2,3,"c");
insert into t1 values (3,4,"E");
insert into t1 values (3,5,"C");
insert into t1 values (3,6,"D");
select a,c,sum(a) from t1 group by a;
2000-12-28 02:56:38 +01:00
a c sum(a)
1 a 1
2 b 2
3 c 3
4 E 4
5 C 5
6 D 6
2001-09-28 07:05:54 +02:00
select a,c,sum(a) from t1 where a > 10 group by a;
2000-12-28 02:56:38 +01:00
a c sum(a)
2001-09-28 07:05:54 +02:00
select sum(a) from t1 where a > 10;
2000-12-28 02:56:38 +01:00
sum(a)
NULL
2001-09-28 07:05:54 +02:00
select a from t1 order by rand(10);
2000-12-28 02:56:38 +01:00
a
2001-11-22 12:50:50 +01:00
2
6
2000-12-28 02:56:38 +01:00
1
3
5
4
2001-09-28 07:05:54 +02:00
select distinct a from t1 order by rand(10);
2000-12-28 02:56:38 +01:00
a
2001-11-22 12:50:50 +01:00
2
6
2000-12-28 02:56:38 +01:00
1
3
5
4
2001-09-28 07:05:54 +02:00
select count(distinct a),count(distinct grp) from t1;
2000-12-28 02:56:38 +01:00
count(distinct a) count(distinct grp)
6 3
2001-09-28 07:05:54 +02:00
insert into t1 values (null,null,'');
select count(distinct a),count(distinct grp) from t1;
2000-12-28 02:56:38 +01:00
count(distinct a) count(distinct grp)
6 3
2003-02-08 01:09:21 +01:00
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;
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)
2002-12-14 00:36:59 +01:00
21 6 3.5000 1.7078 2.9167 7 0 1 6 E
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;
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)
2003-12-19 15:25:50 +01:00
NULL NULL 0 NULL NULL NULL 0 18446744073709551615 NULL NULL
2002-12-14 00:36:59 +01:00
1 1 1 1.0000 0.0000 0.0000 1 1 1 1 a a
2 5 2 2.5000 0.5000 0.2500 3 2 2 3 b c
3 15 3 5.0000 0.8165 0.6667 7 4 4 6 C E
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;
2000-12-28 02:56:38 +01:00
grp sum
NULL NULL
1 7
2002-12-14 00:36:59 +01:00
2 20.25
3 45.483163247594
2001-09-28 07:05:54 +02:00
create table t2 (grp int, a bigint unsigned, c char(10));
insert into t2 select grp,max(a)+max(grp),max(c) from t1 group by grp;
replace into t2 select grp, a, c from t1 limit 2,1;
select * from t2;
2000-12-28 02:56:38 +01:00
grp a c
NULL NULL
1 2 a
2 5 c
3 9 E
2 3 c
2001-09-28 07:05:54 +02:00
drop table t1,t2;
CREATE TABLE t1 (id int(11),value1 float(10,2));
INSERT INTO t1 VALUES (1,0.00),(1,1.00), (1,2.00), (2,10.00), (2,11.00), (2,12.00);
CREATE TABLE t2 (id int(11),name char(20));
INSERT INTO t2 VALUES (1,'Set One'),(2,'Set Two');
2002-12-14 00:36:59 +01:00
select id, avg(value1), std(value1), variance(value1) from t1 group by id;
id avg(value1) std(value1) variance(value1)
1 1.000000 0.816497 0.666667
2 11.000000 0.816497 0.666667
select name, avg(value1), std(value1), variance(value1) from t1, t2 where t1.id = t2.id group by t1.id;
name avg(value1) std(value1) variance(value1)
Set One 1.000000 0.816497 0.666667
Set Two 11.000000 0.816497 0.666667
2001-09-28 07:05:54 +02:00
drop table t1,t2;
create table t1 (id int not null);
create table t2 (id int not null,rating int null);
insert into t1 values(1),(2),(3);
insert into t2 values(1, 3),(2, NULL),(2, NULL),(3, 2),(3, NULL);
select t1.id, avg(rating) from t1 left join t2 on ( t1.id = t2.id ) group by t1.id;
2000-12-28 02:56:38 +01:00
id avg(rating)
1 3.0000
2 NULL
3 2.0000
2001-09-28 07:05:54 +02:00
drop table t1,t2;
create table t1 (a smallint(6) primary key, c char(10), b text);
INSERT INTO t1 VALUES (1,'1','1');
INSERT INTO t1 VALUES (2,'2','2');
INSERT INTO t1 VALUES (4,'4','4');
select count(*) from t1;
2000-12-28 02:56:38 +01:00
count(*)
3
2001-09-28 07:05:54 +02:00
select count(*) from t1 where a = 1;
2000-12-28 02:56:38 +01:00
count(*)
1
2001-09-28 07:05:54 +02:00
select count(*) from t1 where a = 100;
2000-12-28 02:56:38 +01:00
count(*)
0
2001-09-28 07:05:54 +02:00
select count(*) from t1 where a >= 10;
2000-12-28 02:56:38 +01:00
count(*)
0
2001-09-28 07:05:54 +02:00
select count(a) from t1 where a = 1;
2000-12-28 02:56:38 +01:00
count(a)
1
2001-09-28 07:05:54 +02:00
select count(a) from t1 where a = 100;
2000-12-28 02:56:38 +01:00
count(a)
0
2001-09-28 07:05:54 +02:00
select count(a) from t1 where a >= 10;
2000-12-28 02:56:38 +01:00
count(a)
0
2001-09-28 07:05:54 +02:00
select count(b) from t1 where b >= 2;
2000-12-28 02:56:38 +01:00
count(b)
2
2001-09-28 07:05:54 +02:00
select count(b) from t1 where b >= 10;
2000-12-28 02:56:38 +01:00
count(b)
0
2001-09-28 07:05:54 +02:00
select count(c) from t1 where c = 10;
2000-12-28 02:56:38 +01:00
count(c)
0
2001-09-28 07:05:54 +02:00
drop table t1;
CREATE TABLE t1 (d DATETIME, i INT);
INSERT INTO t1 VALUES (NOW(), 1);
SELECT COUNT(i), i, COUNT(i)*i FROM t1 GROUP BY i;
2000-12-28 02:56:38 +01:00
COUNT(i) i COUNT(i)*i
1 1 1
2001-09-28 07:05:54 +02:00
SELECT COUNT(i), (i+0), COUNT(i)*(i+0) FROM t1 GROUP BY i;
2000-12-28 02:56:38 +01:00
COUNT(i) (i+0) COUNT(i)*(i+0)
1 1 1
2001-09-28 07:05:54 +02:00
DROP TABLE t1;
create table t1 (
num float(5,2),
user char(20)
);
insert into t1 values (10.3,'nem'),(20.53,'monty'),(30.23,'sinisa');
insert into t1 values (30.13,'nem'),(20.98,'monty'),(10.45,'sinisa');
insert into t1 values (5.2,'nem'),(8.64,'monty'),(11.12,'sinisa');
select sum(num) from t1;
2000-12-28 02:56:38 +01:00
sum(num)
147.58
2001-09-28 07:05:54 +02:00
select sum(num) from t1 group by user;
2000-12-28 02:56:38 +01:00
sum(num)
50.15
45.63
51.80
2001-09-28 07:05:54 +02:00
drop table t1;
2003-02-03 19:20:32 +01:00
create table t1 (a1 int, a2 char(3), key k1(a1), key k2(a2));
insert into t1 values(10,'aaa'), (10,null), (10,'bbb'), (20,'zzz');
create table t2(a1 char(3), a2 int, a3 real, key k1(a1), key k2(a2, a1));
select * from t1;
a1 a2
10 aaa
10 NULL
10 bbb
20 zzz
select min(a2) from t1;
min(a2)
aaa
select max(t1.a1), max(t2.a2) from t1, t2;
max(t1.a1) max(t2.a2)
NULL NULL
select max(t1.a1) from t1, t2;
max(t1.a1)
NULL
select max(t2.a2), max(t1.a1) from t1, t2;
max(t2.a2) max(t1.a1)
NULL NULL
explain select min(a2) from t1;
2003-02-07 14:47:24 +01:00
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
2003-02-03 19:20:32 +01:00
explain select max(t1.a1), max(t2.a2) from t1, t2;
2003-02-07 14:47:24 +01:00
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No matching min/max row
2003-02-03 19:20:32 +01:00
insert into t2 values('AAA', 10, 0.5);
2003-02-27 09:01:50 +01:00
insert into t2 values('BBB', 20, 1.0);
select t1.a1, t1.a2, t2.a1, t2.a2 from t1,t2;
a1 a2 a1 a2
10 aaa AAA 10
10 aaa BBB 20
2004-05-10 14:48:50 +02:00
10 NULL AAA 10
2003-02-27 09:01:50 +01:00
10 NULL BBB 20
2004-05-10 14:48:50 +02:00
10 bbb AAA 10
2003-02-27 09:01:50 +01:00
10 bbb BBB 20
2004-05-10 14:48:50 +02:00
20 zzz AAA 10
2003-02-27 09:01:50 +01:00
20 zzz BBB 20
2003-02-03 19:20:32 +01:00
select max(t1.a1), max(t2.a1) from t1, t2 where t2.a2=9;
max(t1.a1) max(t2.a1)
NULL NULL
select max(t2.a1), max(t1.a1) from t1, t2 where t2.a2=9;
max(t2.a1) max(t1.a1)
NULL NULL
select t1.a1, t1.a2, t2.a1, t2.a2 from t1 left outer join t2 on t1.a1=10;
a1 a2 a1 a2
10 aaa AAA 10
2003-02-27 09:01:50 +01:00
10 aaa BBB 20
2003-02-03 19:20:32 +01:00
10 NULL AAA 10
2003-02-27 09:01:50 +01:00
10 NULL BBB 20
2003-02-03 19:20:32 +01:00
10 bbb AAA 10
2003-02-27 09:01:50 +01:00
10 bbb BBB 20
2003-02-03 19:20:32 +01:00
20 zzz NULL NULL
select max(t1.a2) from t1 left outer join t2 on t1.a1=10;
max(t1.a2)
zzz
2003-02-27 09:01:50 +01:00
select max(t2.a1) from t2 left outer join t1 on t2.a2=10 where t2.a2=20;
max(t2.a1)
BBB
select max(t2.a1) from t2 left outer join t1 on t2.a2=10 where t2.a2=10;
max(t2.a1)
AAA
2003-02-03 19:20:32 +01:00
select max(t2.a1) from t1 left outer join t2 on t1.a2=t2.a1 and 1=0 where t2.a1='AAA';
max(t2.a1)
NULL
2003-02-27 09:01:50 +01:00
select max(t1.a2),max(t2.a1) from t1 left outer join t2 on t1.a1=10;
max(t1.a2) max(t2.a1)
zzz BBB
2003-02-03 19:20:32 +01:00
drop table t1,t2;
2003-04-15 21:04:16 +02:00
CREATE TABLE t1 (a int, b int);
select count(b), sum(b), avg(b), std(b), min(b), max(b), bit_and(b), bit_or(b) from t1;
count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b)
2003-12-10 13:17:23 +01:00
0 NULL NULL NULL NULL NULL 18446744073709551615 0
2003-04-15 21:04:16 +02:00
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;
a count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b)
insert into t1 values (1,null);
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;
a count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b)
2003-12-10 13:17:23 +01:00
1 0 NULL NULL NULL NULL NULL 18446744073709551615 0
2003-04-15 21:04:16 +02:00
insert into t1 values (1,null);
insert into t1 values (2,null);
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;
a count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b)
2003-12-02 17:39:51 +01:00
1 0 NULL NULL NULL NULL NULL 18446744073709551615 0
2 0 NULL NULL NULL NULL NULL 18446744073709551615 0
2003-04-15 21:04:16 +02:00
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;
a count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b)
2003-12-10 13:17:23 +01:00
1 0 NULL NULL NULL NULL NULL 18446744073709551615 0
2 0 NULL NULL NULL NULL NULL 18446744073709551615 0
2003-04-15 21:04:16 +02:00
insert into t1 values (2,1);
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;
a count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b)
2003-12-02 17:39:51 +01:00
1 0 NULL NULL NULL NULL NULL 18446744073709551615 0
2003-11-20 22:03:04 +01:00
2 1 1 1.0000 0.0000 1 1 1 1
2003-04-15 21:04:16 +02:00
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;
a count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b)
2003-12-10 13:17:23 +01:00
1 0 NULL NULL NULL NULL NULL 18446744073709551615 0
2003-04-15 21:04:16 +02:00
2 1 1 1.0000 0.0000 1 1 1 1
insert into t1 values (3,1);
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;
a count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b)
2003-12-02 17:39:51 +01:00
1 0 NULL NULL NULL NULL NULL 18446744073709551615 0
2003-11-20 22:03:04 +01:00
2 1 1 1.0000 0.0000 1 1 1 1
2003-04-15 21:04:16 +02:00
3 1 1 1.0000 0.0000 1 1 1 1
2004-04-26 14:53:31 +02:00
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;
a count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b) bit_xor(b)
1 0 NULL NULL NULL NULL NULL 18446744073709551615 0 0
2 1 1 1.0000 0.0000 1 1 1 1 1
3 1 1 1.0000 0.0000 1 1 1 1 1
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;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using filesort
Warnings:
2004-07-20 07:48:28 +02:00
Note 1003 select sql_big_result `test`.`t1`.`a` AS `a`,count(`test`.`t1`.`b`) AS `count(b)`,sum(`test`.`t1`.`b`) AS `sum(b)`,avg(`test`.`t1`.`b`) AS `avg(b)`,std(`test`.`t1`.`b`) AS `std(b)`,min(`test`.`t1`.`b`) AS `min(b)`,max(`test`.`t1`.`b`) AS `max(b)`,bit_and(`test`.`t1`.`b`) AS `bit_and(b)`,bit_or(`test`.`t1`.`b`) AS `bit_or(b)`,bit_xor(`test`.`t1`.`b`) AS `bit_xor(b)` from `test`.`t1` group by `test`.`t1`.`a`
2003-04-15 21:04:16 +02:00
drop table t1;
2003-12-10 13:17:23 +01:00
create table t1 (col int);
insert into t1 values (-1), (-2), (-3);
select bit_and(col), bit_or(col) from t1;
bit_and(col) bit_or(col)
18446744073709551612 18446744073709551615
select SQL_BIG_RESULT bit_and(col), bit_or(col) from t1 group by col;
bit_and(col) bit_or(col)
18446744073709551613 18446744073709551613
18446744073709551614 18446744073709551614
18446744073709551615 18446744073709551615
drop table t1;
2004-04-09 16:07:39 +02:00
create table t1 (a int);
select avg(2) from t1;
avg(2)
NULL
drop table t1;
2003-02-27 09:01:50 +01:00
create table t1(
a1 char(3) primary key,
a2 smallint,
a3 char(3),
a4 real,
a5 date,
key k1(a2,a3),
key k2(a4 desc,a1),
key k3(a5,a1)
);
create table t2(
a1 char(3) primary key,
a2 char(17),
a3 char(2),
a4 char(3),
key k1(a3, a2),
key k2(a4)
);
insert into t1 values('AME',0,'SEA',0.100,date'1942-02-19');
insert into t1 values('HBR',1,'SEA',0.085,date'1948-03-05');
insert into t1 values('BOT',2,'SEA',0.085,date'1951-11-29');
insert into t1 values('BMC',3,'SEA',0.085,date'1958-09-08');
insert into t1 values('TWU',0,'LAX',0.080,date'1969-10-05');
insert into t1 values('BDL',0,'DEN',0.080,date'1960-11-27');
insert into t1 values('DTX',1,'NYC',0.080,date'1961-05-04');
insert into t1 values('PLS',1,'WDC',0.075,date'1949-01-02');
insert into t1 values('ZAJ',2,'CHI',0.075,date'1960-06-15');
insert into t1 values('VVV',2,'MIN',0.075,date'1959-06-28');
insert into t1 values('GTM',3,'DAL',0.070,date'1977-09-23');
insert into t1 values('SSJ',null,'CHI',null,date'1974-03-19');
insert into t1 values('KKK',3,'ATL',null,null);
insert into t1 values('XXX',null,'MIN',null,null);
2004-12-30 12:40:24 +01:00
insert into t1 values('WWW',1,'LED',null,null);
2003-02-27 09:01:50 +01:00
insert into t2 values('TKF','Seattle','WA','AME');
insert into t2 values('LCC','Los Angeles','CA','TWU');
insert into t2 values('DEN','Denver','CO','BDL');
insert into t2 values('SDC','San Diego','CA','TWU');
insert into t2 values('NOL','New Orleans','LA','GTM');
insert into t2 values('LAK','Los Angeles','CA','TWU');
2004-07-15 03:19:07 +02:00
insert into t2 values('AAA','AAA','AA','AME');
2003-02-27 09:01:50 +01:00
select * from t1;
a1 a2 a3 a4 a5
AME 0 SEA 0.1 1942-02-19
HBR 1 SEA 0.085 1948-03-05
BOT 2 SEA 0.085 1951-11-29
BMC 3 SEA 0.085 1958-09-08
TWU 0 LAX 0.08 1969-10-05
BDL 0 DEN 0.08 1960-11-27
DTX 1 NYC 0.08 1961-05-04
PLS 1 WDC 0.075 1949-01-02
ZAJ 2 CHI 0.075 1960-06-15
VVV 2 MIN 0.075 1959-06-28
GTM 3 DAL 0.07 1977-09-23
SSJ NULL CHI NULL 1974-03-19
KKK 3 ATL NULL NULL
XXX NULL MIN NULL NULL
2004-12-30 12:40:24 +01:00
WWW 1 LED NULL NULL
2003-02-27 09:01:50 +01:00
select * from t2;
a1 a2 a3 a4
TKF Seattle WA AME
LCC Los Angeles CA TWU
DEN Denver CO BDL
SDC San Diego CA TWU
NOL New Orleans LA GTM
LAK Los Angeles CA TWU
2004-07-15 03:19:07 +02:00
AAA AAA AA AME
2003-02-27 09:01:50 +01:00
explain
select min(a1) from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select min(a1) from t1;
min(a1)
AME
explain
select max(a4) from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select max(a4) from t1;
max(a4)
0.1
explain
select min(a5), max(a5) from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select min(a5), max(a5) from t1;
min(a5) max(a5)
1942-02-19 1977-09-23
explain
select min(a3) from t1 where a2 = 2;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select min(a3) from t1 where a2 = 2;
min(a3)
CHI
explain
select min(a1), max(a1) from t1 where a4 = 0.080;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select min(a1), max(a1) from t1 where a4 = 0.080;
min(a1) max(a1)
BDL TWU
explain
select min(t1.a5), max(t2.a3) from t1, t2;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select min(t1.a5), max(t2.a3) from t1, t2;
min(t1.a5) max(t2.a3)
1942-02-19 WA
explain
select min(t1.a3), max(t2.a2) from t1, t2 where t1.a2 = 0 and t2.a3 = 'CA';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select min(t1.a3), max(t2.a2) from t1, t2 where t1.a2 = 0 and t2.a3 = 'CA';
min(t1.a3) max(t2.a2)
DEN San Diego
explain
select min(a1) from t1 where a1 > 'KKK';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select min(a1) from t1 where a1 > 'KKK';
min(a1)
PLS
explain
select min(a1) from t1 where a1 >= 'KKK';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select min(a1) from t1 where a1 >= 'KKK';
min(a1)
KKK
explain
select max(a3) from t1 where a2 = 2 and a3 < 'SEA';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select max(a3) from t1 where a2 = 2 and a3 < 'SEA';
max(a3)
MIN
explain
select max(a5) from t1 where a5 < date'1970-01-01';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select max(a5) from t1 where a5 < date'1970-01-01';
max(a5)
1969-10-05
explain
select max(a3) from t1 where a2 is null;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select max(a3) from t1 where a2 is null;
max(a3)
MIN
explain
select max(a3) from t1 where a2 = 0 and a3 between 'K' and 'Q';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select max(a3) from t1 where a2 = 0 and a3 between 'K' and 'Q';
max(a3)
LAX
explain
select min(a1), max(a1) from t1 where a1 between 'A' and 'P';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select min(a1), max(a1) from t1 where a1 between 'A' and 'P';
min(a1) max(a1)
AME KKK
explain
select max(a3) from t1 where a3 < 'SEA' and a2 = 2 and a3 <= 'MIN';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select max(a3) from t1 where a3 < 'SEA' and a2 = 2 and a3 <= 'MIN';
max(a3)
MIN
explain
2003-02-28 07:53:54 +01:00
select max(a3) from t1 where a3 = 'MIN' and a2 = 2;
2003-02-27 09:01:50 +01:00
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
2003-02-28 07:53:54 +01:00
select max(a3) from t1 where a3 = 'MIN' and a2 = 2;
2003-02-27 09:01:50 +01:00
max(a3)
2003-02-28 07:53:54 +01:00
MIN
2003-02-27 09:01:50 +01:00
explain
select max(a3) from t1 where a3 = 'DEN' and a2 = 2;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No matching min/max row
select max(a3) from t1 where a3 = 'DEN' and a2 = 2;
max(a3)
NULL
explain
select max(t1.a3), min(t2.a2) from t1, t2 where t1.a2 = 2 and t1.a3 < 'MIN' and t2.a3 = 'CA';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select max(t1.a3), min(t2.a2) from t1, t2 where t1.a2 = 2 and t1.a3 < 'MIN' and t2.a3 = 'CA';
max(t1.a3) min(t2.a2)
CHI Los Angeles
explain
select max(a3) from t1 where a2 is null and a2 = 2;
id select_type table type possible_keys key key_len ref rows Extra
2003-12-03 01:41:53 +01:00
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
2003-02-27 09:01:50 +01:00
select max(a3) from t1 where a2 is null and a2 = 2;
max(a3)
NULL
explain
select max(a2) from t1 where a2 >= 1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select max(a2) from t1 where a2 >= 1;
max(a2)
3
explain
select min(a3) from t1 where a2 = 2 and a3 < 'SEA';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select min(a3) from t1 where a2 = 2 and a3 < 'SEA';
min(a3)
CHI
2003-02-28 07:53:54 +01:00
explain
select min(a3) from t1 where a2 = 4;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No matching min/max row
select min(a3) from t1 where a2 = 4;
min(a3)
NULL
explain
select min(a3) from t1 where a2 = 2 and a3 > 'SEA';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No matching min/max row
select min(a3) from t1 where a2 = 2 and a3 > 'SEA';
min(a3)
NULL
explain
select (min(a4)+max(a4))/2 from t1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select (min(a4)+max(a4))/2 from t1;
(min(a4)+max(a4))/2
0.085
explain
select min(a3) from t1 where 2 = a2;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select min(a3) from t1 where 2 = a2;
min(a3)
CHI
explain
select max(a3) from t1 where a2 = 2 and 'SEA' > a3;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select max(a3) from t1 where a2 = 2 and 'SEA' > a3;
max(a3)
MIN
explain
select max(a3) from t1 where a2 = 2 and 'SEA' < a3;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No matching min/max row
select max(a3) from t1 where a2 = 2 and 'SEA' < a3;
max(a3)
NULL
explain
select min(a3) from t1 where a2 = 2 and a3 >= 'CHI';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select min(a3) from t1 where a2 = 2 and a3 >= 'CHI';
min(a3)
CHI
explain
select min(a3) from t1 where a2 = 2 and a3 >= 'CHI' and a3 < 'SEA';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select min(a3) from t1 where a2 = 2 and a3 >= 'CHI' and a3 < 'SEA';
min(a3)
CHI
explain
select min(a3) from t1 where a2 = 2 and a3 >= 'CHI' and a3 = 'MIN';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select min(a3) from t1 where a2 = 2 and a3 >= 'CHI' and a3 = 'MIN';
min(a3)
MIN
explain
select min(a3) from t1 where a2 = 2 and a3 >= 'SEA' and a3 = 'MIN';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
select min(a3) from t1 where a2 = 2 and a3 >= 'SEA' and a3 = 'MIN';
min(a3)
NULL
explain
select min(t1.a1), min(t2.a4) from t1,t2 where t1.a1 < 'KKK' and t2.a4 < 'KKK';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
select min(t1.a1), min(t2.a4) from t1,t2 where t1.a1 < 'KKK' and t2.a4 < 'KKK';
min(t1.a1) min(t2.a4)
AME AME
2003-02-27 09:01:50 +01:00
explain
select min(a1) from t1 where a1 > 'KKK' or a1 < 'XXX';
id select_type table type possible_keys key key_len ref rows Extra
2004-12-30 12:40:24 +01:00
1 SIMPLE t1 index PRIMARY PRIMARY 3 NULL 15 Using where; Using index
2003-02-27 09:01:50 +01:00
explain
select min(a1) from t1 where a1 != 'KKK';
id select_type table type possible_keys key key_len ref rows Extra
2004-12-30 12:40:24 +01:00
1 SIMPLE t1 index PRIMARY PRIMARY 3 NULL 15 Using where; Using index
2003-02-27 09:01:50 +01:00
explain
select max(a3) from t1 where a2 < 2 and a3 < 'SEA';
id select_type table type possible_keys key key_len ref rows Extra
2004-12-30 12:40:24 +01:00
1 SIMPLE t1 range k1 k1 3 NULL 6 Using where; Using index
2003-02-27 09:01:50 +01:00
explain
select max(t1.a3), min(t2.a2) from t1, t2 where t1.a2 = 2 and t1.a3 < 'MIN' and t2.a3 > 'CA';
id select_type table type possible_keys key key_len ref rows Extra
2004-09-09 05:59:26 +02:00
1 SIMPLE t1 range k1 k1 7 NULL 1 Using where; Using index
2003-02-27 09:01:50 +01:00
1 SIMPLE t2 range k1 k1 3 NULL 4 Using where; Using index
2003-02-28 07:53:54 +01:00
explain
select min(a4 - 0.01) from t1;
id select_type table type possible_keys key key_len ref rows Extra
2004-12-30 12:40:24 +01:00
1 SIMPLE t1 index NULL k2 12 NULL 15 Using index
2003-02-28 07:53:54 +01:00
explain
select max(a4 + 0.01) from t1;
id select_type table type possible_keys key key_len ref rows Extra
2004-12-30 12:40:24 +01:00
1 SIMPLE t1 index NULL k2 12 NULL 15 Using index
2003-02-28 07:53:54 +01:00
explain
select min(a3) from t1 where (a2 +1 ) is null;
id select_type table type possible_keys key key_len ref rows Extra
2004-12-30 12:40:24 +01:00
1 SIMPLE t1 index NULL k1 7 NULL 15 Using where; Using index
2003-02-28 07:53:54 +01:00
explain
select min(a3) from t1 where (a2 + 1) = 2;
id select_type table type possible_keys key key_len ref rows Extra
2004-12-30 12:40:24 +01:00
1 SIMPLE t1 index NULL k1 7 NULL 15 Using where; Using index
2003-02-28 07:53:54 +01:00
explain
select min(a3) from t1 where 2 = (a2 + 1);
id select_type table type possible_keys key key_len ref rows Extra
2004-12-30 12:40:24 +01:00
1 SIMPLE t1 index NULL k1 7 NULL 15 Using where; Using index
2003-02-28 07:53:54 +01:00
explain
select min(a2) from t1 where a2 < 2 * a2 - 8;
id select_type table type possible_keys key key_len ref rows Extra
2004-12-30 12:40:24 +01:00
1 SIMPLE t1 index NULL k1 7 NULL 15 Using where; Using index
2003-02-28 07:53:54 +01:00
explain
select min(a1) from t1 where a1 between a3 and 'KKK';
id select_type table type possible_keys key key_len ref rows Extra
2004-12-30 12:40:24 +01:00
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 15 Using where
2003-02-28 07:53:54 +01:00
explain
select min(a4) from t1 where (a4 + 0.01) between 0.07 and 0.08;
id select_type table type possible_keys key key_len ref rows Extra
2004-12-30 12:40:24 +01:00
1 SIMPLE t1 index NULL k2 12 NULL 15 Using where; Using index
2003-02-28 07:53:54 +01:00
explain
select concat(min(t1.a1),min(t2.a4)) from t1, t2 where t2.a4 <> 'AME';
id select_type table type possible_keys key key_len ref rows Extra
2003-08-02 12:26:02 +02:00
1 SIMPLE t2 range k2 k2 4 NULL 6 Using where; Using index
2004-12-30 12:40:24 +01:00
1 SIMPLE t1 index NULL PRIMARY 3 NULL 15 Using index
2003-05-19 15:35:49 +02:00
drop table t1, t2;
2003-12-10 05:31:42 +01:00
create table t1 (USR_ID integer not null, MAX_REQ integer not null, constraint PK_SEA_USER primary key (USR_ID)) engine=InnoDB;
2003-05-17 09:05:07 +02:00
insert into t1 values (1, 3);
select count(*) + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ from t1 group by MAX_REQ;
count(*) + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ
1
select Case When Count(*) < MAX_REQ Then 1 Else 0 End from t1 where t1.USR_ID = 1 group by MAX_REQ;
Case When Count(*) < MAX_REQ Then 1 Else 0 End
1
drop table t1;
2003-07-30 11:15:25 +02:00
create table t1 (a char(10));
insert into t1 values ('a'),('b'),('c');
select coercibility(max(a)) from t1;
coercibility(max(a))
2004-11-19 16:35:36 +01:00
2
2003-07-30 11:15:25 +02:00
drop table t1;
2004-11-19 16:35:36 +01:00
create table t1 (a char character set latin2);
insert into t1 values ('a'),('b');
select charset(max(a)), coercibility(max(a)),
charset(min(a)), coercibility(min(a)) from t1;
charset(max(a)) coercibility(max(a)) charset(min(a)) coercibility(min(a))
latin2 2 latin2 2
create table t2 select max(a),min(a) from t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
2004-12-07 14:47:00 +01:00
`max(a)` varchar(1) character set latin2 default NULL,
`min(a)` varchar(1) character set latin2 default NULL
2004-11-19 16:35:36 +01:00
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t2,t1;
2003-09-20 17:30:36 +02:00
create table t1 (a int);
insert into t1 values (1);
select max(a) as b from t1 having b=1;
b
1
select a from t1 having a=1;
a
1
drop table t1;
2004-05-05 13:06:01 +02:00
create table t1 (a int);
select variance(2) from t1;
variance(2)
NULL
select stddev(2) from t1;
stddev(2)
NULL
drop table t1;
2004-06-10 09:59:55 +02:00
create table t1 (a int);
insert into t1 values (1),(2);
prepare stmt1 from 'SELECT COUNT(*) FROM t1';
execute stmt1;
COUNT(*)
2
execute stmt1;
COUNT(*)
2
execute stmt1;
COUNT(*)
2
deallocate prepare stmt1;
drop table t1;
create table t1 (a int, primary key(a));
insert into t1 values (1),(2);
prepare stmt1 from 'SELECT max(a) FROM t1';
execute stmt1;
max(a)
2
execute stmt1;
max(a)
2
execute stmt1;
max(a)
2
deallocate prepare stmt1;
drop table t1;
2004-09-08 04:46:09 +02:00
CREATE TABLE t1 (a int primary key);
INSERT INTO t1 VALUES (1),(2),(3),(4);
SELECT MAX(a) FROM t1 WHERE a > 5;
MAX(a)
NULL
SELECT MIN(a) FROM t1 WHERE a < 0;
MIN(a)
NULL
DROP TABLE t1;
2004-10-05 15:02:09 +02:00
CREATE TABLE t1 (
id int(10) unsigned NOT NULL auto_increment,
val enum('one','two','three') NOT NULL default 'one',
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO t1 VALUES
(1,'one'),(2,'two'),(3,'three'),(4,'one'),(5,'two');
select val, count(*) from t1 group by val;
val count(*)
one 2
two 2
three 1
drop table t1;
CREATE TABLE t1 (
id int(10) unsigned NOT NULL auto_increment,
val set('one','two','three') NOT NULL default 'one',
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO t1 VALUES
(1,'one'),(2,'two'),(3,'three'),(4,'one'),(5,'two');
select val, count(*) from t1 group by val;
val count(*)
one 2
two 2
three 1
drop table t1;
2005-02-04 13:31:36 +01:00
create table t1(f1 datetime);
insert into t1 values (now());
create table t2 select f2 from (select max(now()) f2 from t1) a;
show columns from t2;
Field Type Null Key Default Extra
2005-02-04 21:59:02 +01:00
f2 datetime NO 0000-00-00 00:00:00
2005-02-04 13:31:36 +01:00
drop table t2;
create table t2 select f2 from (select now() f2 from t1) a;
show columns from t2;
Field Type Null Key Default Extra
2005-02-04 21:59:02 +01:00
f2 datetime NO 0000-00-00 00:00:00
2005-02-04 13:31:36 +01:00
drop table t2, t1;