📄 func_group.result
字号:
drop table if exists t1,t2;set @sav_dpi= @@div_precision_increment;set div_precision_increment= 5;show variables like 'div_precision_increment';Variable_name Valuediv_precision_increment 5create 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;a c sum(a)1 a 12 b 23 c 34 E 45 C 56 D 6select a,c,sum(a) from t1 where a > 10 group by a;a c sum(a)select sum(a) from t1 where a > 10;sum(a)NULLselect a from t1 order by rand(10);a261354select distinct a from t1 order by rand(10);a261354select count(distinct a),count(distinct grp) from t1;count(distinct a) count(distinct grp)6 3insert into t1 values (null,null,'');select count(distinct a),count(distinct grp) from t1;count(distinct a) count(distinct grp)6 3select 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)21 6 3.50000 1.70783 2.91667 7 0 1 6 Eselect 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 NULL 0 NULL NULL NULL 0 18446744073709551615 NULL NULL 1 1 1 1.00000 0.00000 0.00000 1 1 1 1 a a2 5 2 2.50000 0.50000 0.25000 3 2 2 3 b c3 15 3 5.00000 0.81650 0.66667 7 4 4 6 C Eselect 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;grp sumNULL NULL1 72 20.253 45.483163247594create 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;grp a cNULL NULL 1 2 a2 5 c3 9 E2 3 cdrop 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');select id, avg(value1), std(value1), variance(value1) from t1 group by id;id avg(value1) std(value1) variance(value1)1 1.0000000 0.816497 0.6666672 11.0000000 0.816497 0.666667select 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.0000000 0.816497 0.666667Set Two 11.0000000 0.816497 0.666667drop 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;id avg(rating)1 3.000002 NULL3 2.00000select sql_small_result t2.id, avg(rating) from t2 group by t2.id;id avg(rating)1 3.000002 NULL3 2.00000select sql_big_result t2.id, avg(rating) from t2 group by t2.id;id avg(rating)1 3.000002 NULL3 2.00000select sql_small_result t2.id, avg(rating+0.0e0) from t2 group by t2.id;id avg(rating+0.0e0)1 32 NULL3 2select sql_big_result t2.id, avg(rating+0.0e0) from t2 group by t2.id;id avg(rating+0.0e0)1 32 NULL3 2drop 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;count(*)3select count(*) from t1 where a = 1;count(*)1select count(*) from t1 where a = 100;count(*)0select count(*) from t1 where a >= 10;count(*)0select count(a) from t1 where a = 1;count(a)1select count(a) from t1 where a = 100;count(a)0select count(a) from t1 where a >= 10;count(a)0select count(b) from t1 where b >= 2;count(b)2select count(b) from t1 where b >= 10;count(b)0select count(c) from t1 where c = 10;count(c)0drop 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;COUNT(i) i COUNT(i)*i1 1 1SELECT COUNT(i), (i+0), COUNT(i)*(i+0) FROM t1 GROUP BY i;COUNT(i) (i+0) COUNT(i)*(i+0)1 1 1DROP 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;sum(num)147.58select sum(num) from t1 group by user;sum(num)50.1545.6351.80drop table t1;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 a210 aaa10 NULL10 bbb20 zzzselect min(a2) from t1;min(a2)aaaselect max(t1.a1), max(t2.a2) from t1, t2;max(t1.a1) max(t2.a2)NULL NULLselect max(t1.a1) from t1, t2;max(t1.a1)NULLselect max(t2.a2), max(t1.a1) from t1, t2;max(t2.a2) max(t1.a1)NULL NULLexplain select min(a2) from t1;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized awayexplain select max(t1.a1), max(t2.a2) from t1, t2;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No matching min/max rowinsert into t2 values('AAA', 10, 0.5);insert into t2 values('BBB', 20, 1.0);select t1.a1, t1.a2, t2.a1, t2.a2 from t1,t2;a1 a2 a1 a210 aaa AAA 1010 aaa BBB 2010 NULL AAA 1010 NULL BBB 2010 bbb AAA 1010 bbb BBB 2020 zzz AAA 1020 zzz BBB 20select max(t1.a1), max(t2.a1) from t1, t2 where t2.a2=9;max(t1.a1) max(t2.a1)NULL NULLselect max(t2.a1), max(t1.a1) from t1, t2 where t2.a2=9;max(t2.a1) max(t1.a1)NULL NULLselect t1.a1, t1.a2, t2.a1, t2.a2 from t1 left outer join t2 on t1.a1=10;a1 a2 a1 a210 aaa AAA 1010 aaa BBB 2010 NULL AAA 1010 NULL BBB 2010 bbb AAA 1010 bbb BBB 2020 zzz NULL NULLselect max(t1.a2) from t1 left outer join t2 on t1.a1=10;max(t1.a2)zzzselect max(t2.a1) from t2 left outer join t1 on t2.a2=10 where t2.a2=20;max(t2.a1)BBBselect max(t2.a1) from t2 left outer join t1 on t2.a2=10 where t2.a2=10;max(t2.a1)AAAselect max(t2.a1) from t1 left outer join t2 on t1.a2=t2.a1 and 1=0 where t2.a1='AAA';max(t2.a1)NULLselect max(t1.a2),max(t2.a1) from t1 left outer join t2 on t1.a1=10;max(t1.a2) max(t2.a1)zzz BBBdrop table t1,t2;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)0 NULL NULL NULL NULL NULL 18446744073709551615 0select 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)1 0 NULL NULL NULL NULL NULL 18446744073709551615 0insert 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)1 0 NULL NULL NULL NULL NULL 18446744073709551615 02 0 NULL NULL NULL NULL NULL 18446744073709551615 0select 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)1 0 NULL NULL NULL NULL NULL 18446744073709551615 02 0 NULL NULL NULL NULL NULL 18446744073709551615 0insert 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)1 0 NULL NULL NULL NULL NULL 18446744073709551615 02 1 1 1.00000 0.00000 1 1 1 1select 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)1 0 NULL NULL NULL NULL NULL 18446744073709551615 02 1 1 1.00000 0.00000 1 1 1 1insert 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)1 0 NULL NULL NULL NULL NULL 18446744073709551615 02 1 1 1.00000 0.00000 1 1 1 13 1 1 1.00000 0.00000 1 1 1 1select 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 02 1 1 1.00000 0.00000 1 1 1 1 13 1 1 1.00000 0.00000 1 1 1 1 1explain 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 Extra1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using filesortWarnings: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`drop table t1;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 18446744073709551615select SQL_BIG_RESULT bit_and(col), bit_or(col) from t1 group by col;bit_and(col) bit_or(col)18446744073709551613 1844674407370955161318446744073709551614 1844674407370955161418446744073709551615 18446744073709551615drop table t1;create table t1 (a int);select avg(2) from t1;avg(2)NULLdrop table t1;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);insert into t1 values('WWW',1,'LED',null,null);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');insert into t2 values('AAA','AAA','AA','AME');select * from t1;a1 a2 a3 a4 a5AME 0 SEA 0.1 1942-02-19HBR 1 SEA 0.085 1948-03-05BOT 2 SEA 0.085 1951-11-29BMC 3 SEA 0.085 1958-09-08TWU 0 LAX 0.08 1969-10-05BDL 0 DEN 0.08 1960-11-27DTX 1 NYC 0.08 1961-05-04PLS 1 WDC 0.075 1949-01-02ZAJ 2 CHI 0.075 1960-06-15VVV 2 MIN 0.075 1959-06-28GTM 3 DAL 0.07 1977-09-23SSJ NULL CHI NULL 1974-03-19KKK 3 ATL NULL NULL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -