1
drop table if exists t1,t2,t3,t4,t5;
2
create table t1 (pk int primary key,a double ,b double);
3
insert into t1(pk,a) values (1,12345678901234567890);
4
select count(a) from t1;
7
select count(distinct a) from t1;
11
CREATE TABLE t1 (a INT, b INT primary key);
12
INSERT INTO t1 VALUES (1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8);
13
SELECT a,COUNT(DISTINCT b) AS cnt FROM t1 GROUP BY a HAVING cnt > 50;
15
SELECT a,SUM(DISTINCT b) AS sumation FROM t1 GROUP BY a HAVING sumation > 50;
17
SELECT a,AVG(DISTINCT b) AS average FROM t1 GROUP BY a HAVING average > 50;
20
CREATE TABLE t1 ( a INT, b INT primary key);
21
INSERT INTO t1 VALUES (NULL, 1), (NULL, 2);
22
EXPLAIN SELECT MIN(a), MIN(b) FROM t1;
23
SELECT MIN(a), MIN(b) FROM t1;
26
CREATE TABLE t2( pk int primary key, a INT, b INT, c INT);
27
INSERT INTO t2 ( pk,a, b, c ) VALUES ( 1,1, NULL, 2 ), ( 2,1, 3, 4 ), ( 3,1, 4, 4 );
28
EXPLAIN SELECT MIN(b), MIN(c) FROM t2 WHERE a = 1;
29
SELECT MIN(b), MIN(c) FROM t2 WHERE a = 1;
32
CREATE TABLE t3 (pk int primary key , a INT, b INT, c int);
33
INSERT INTO t3 VALUES (1,1, NULL, 1), (2,2, NULL, 2), (3,3, NULL, 3);
34
EXPLAIN SELECT MIN(a), MIN(b) FROM t3 where a = 2;
35
SELECT MIN(a), MIN(b) FROM t3 where a = 2;
38
CREATE TABLE t4 (a INT, b INT, c int, primary KEY(a, c));
39
INSERT INTO t4 VALUES (1, 1, 1), (2, NULL, 2), (3, 1, 3);
40
EXPLAIN SELECT MIN(a), MIN(b) FROM t4 where a = 2;
41
SELECT MIN(a), MIN(b) FROM t4 where a = 2;
44
SELECT MIN(b), min(c) FROM t4 where a = 2;
47
CREATE TABLE t5( a INT, b INT, primary KEY( a, b),c int);
48
INSERT INTO t5(a,b) VALUES( 1, 1 ), ( 1, 2 );
49
EXPLAIN SELECT MIN(a), MIN(b) FROM t5 WHERE a = 1;
50
SELECT MIN(a), MIN(b) FROM t5 WHERE a = 1;
53
SELECT MIN(a), MIN(b) FROM t5 WHERE a = 1 and b > 1;
56
DROP TABLE t1, t2, t3, t4, t5;
57
CREATE TABLE t1 (a int, b datetime(6), primary key (a,b),c int);
58
SELECT MIN(b) FROM t1 WHERE a=1 AND b>'2007-08-01';
62
CREATE TABLE t1 (a INT primary key, b int);
63
INSERT INTO t1(a) VALUES (1),(2),(3),(4);
64
SELECT a FROM t1 HAVING COUNT(*)>2;
67
SELECT COUNT(*), a FROM t1;
70
SELECT a FROM t1 HAVING COUNT(*)>2;
73
SELECT COUNT(*), a FROM t1;
77
CREATE TABLE t1(pk int primary key,a DOUBLE );
78
INSERT INTO t1 VALUES (1,10), (2,20);
79
SELECT AVG(a), CAST(AVG(a) AS DECIMAL) FROM t1;
80
AVG(a) CAST(AVG(a) AS DECIMAL)
83
CREATE TABLE t1 (a INT, b INT primary key);
84
INSERT INTO t1 VALUES (1,1), (1,2), (1,3);
85
SELECT COUNT(*) FROM t1;
88
SELECT COUNT(*) FROM t1 where a=1;
91
SELECT COUNT(*),a FROM t1;
94
SELECT COUNT(*) FROM t1 a JOIN t1 b ON a.a= b.a;
103
INSERT INTO t1 VALUES (1,11),(2,12),(3,13);
104
SELECT MAX(pk) as max, i
109
SELECT MAX(pk) as max, i
116
CREATE TABLE t1(a int, primary KEY(a), b int);
117
INSERT INTO t1(a) VALUES (1), (2);
118
SELECT 1 FROM t1 ORDER BY AVG(DISTINCT a);
122
CREATE TABLE t1 (pk int primary key,col_int_nokey int);
123
INSERT INTO t1 VALUES (1,7),(2,8),(3,NULL);
124
SELECT AVG(DISTINCT col_int_nokey) FROM t1;
125
AVG(DISTINCT col_int_nokey)
127
SELECT AVG(DISTINCT outr.col_int_nokey) FROM t1 AS outr LEFT JOIN t1 AS outr2 ON
128
outr.col_int_nokey = outr2.col_int_nokey;
129
AVG(DISTINCT outr.col_int_nokey)
132
create table t1 (pk int primary key, b int);
133
insert into t1 values (1, NULL), (2, 2), (3, 4);
139
select count(b), min(b), max(b), sum(b), avg(b) from t1;
140
count(b) min(b) max(b) sum(b) avg(b)