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)
|
|
|
|
NULL 0 0 NULL NULL NULL 0 0 NULL NULL
|
|
|
|
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);
|
|
|
|
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
|
|
|
|
10 NULL AAA 10
|
|
|
|
10 bbb AAA 10
|
|
|
|
20 zzz NULL NULL
|
|
|
|
select max(t1.a2) from t1 left outer join t2 on t1.a1=10;
|
|
|
|
max(t1.a2)
|
|
|
|
zzz
|
|
|
|
select max(t1.a2) from t1 left outer join t2 on t1.a1=10 where t1.a1=20;
|
|
|
|
max(t1.a2)
|
|
|
|
zzz
|
|
|
|
select max(t1.a2) from t1 left outer join t2 on t1.a1=10 where t1.a1=10;
|
|
|
|
max(t1.a2)
|
|
|
|
bbb
|
|
|
|
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
|
|
|
|
drop table t1,t2;
|