⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 group_by.test

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 TEST
📖 第 1 页 / 共 2 页
字号:
#create table t1 (One int unsigned, Two int unsigned, Three int unsigned, Four int unsigned);insert into t1 values (1,2,1,4),(1,2,2,4),(1,2,3,4),(1,2,4,4),(1,1,1,4),(1,1,2,4),(1,1,3,4),(1,1,4,4),(1,3,1,4),(1,3,2,4),(1,3,3,4),(1,3,4,4);select One, Two, sum(Four) from t1 group by One,Two;drop table t1;create table t1 (id integer primary key not null auto_increment, gender char(1));insert into t1 values (NULL, 'M'), (NULL, 'F'),(NULL, 'F'),(NULL, 'F'),(NULL, 'M');create table t2 (user_id integer not null, date date);insert into t2 values (1, '2002-06-09'),(2, '2002-06-09'),(1, '2002-06-09'),(3, '2002-06-09'),(4, '2002-06-09'),(4, '2002-06-09');select u.gender as gender, count(distinct  u.id) as dist_count, (count(distinct u.id)/5*100) as percentage from t1 u, t2 l where l.user_id = u.id group by u.gender;select u.gender as  gender, count(distinct  u.id) as dist_count, (count(distinct u.id)/5*100) as percentage from t1 u, t2 l where l.user_id = u.id group by u.gender  order by percentage;drop table t1,t2;## The GROUP BY returned rows in wrong order in 3.23.51#CREATE TABLE t1 (ID1 int, ID2 int, ID int NOT NULL AUTO_INCREMENT,PRIMARY KEY(ID));insert into t1 values (1,244,NULL),(2,243,NULL),(134,223,NULL),(185,186,NULL);select S.ID as xID, S.ID1 as xID1 from t1 as S left join t1 as yS  on S.ID1 between yS.ID1 and yS.ID2;select S.ID as xID, S.ID1 as xID1, repeat('*',count(distinct yS.ID)) as Level from t1 as S left join t1 as yS  on S.ID1 between yS.ID1 and yS.ID2 group by xID order by xID1;drop table t1;## Problem with MAX and LEFT JOIN#CREATE TABLE t1 (  pid int(11) unsigned NOT NULL default '0',  c1id int(11) unsigned default NULL,  c2id int(11) unsigned default NULL,  value int(11) unsigned NOT NULL default '0',  UNIQUE KEY pid2 (pid,c1id,c2id),  UNIQUE KEY pid (pid,value)) ENGINE=MyISAM;INSERT INTO t1 VALUES (1, 1, NULL, 1),(1, 2, NULL, 2),(1, NULL, 3, 3),(1, 4, NULL, 4),(1, 5, NULL, 5);CREATE TABLE t2 (  id int(11) unsigned NOT NULL default '0',  active enum('Yes','No') NOT NULL default 'Yes',  PRIMARY KEY  (id)) ENGINE=MyISAM;INSERT INTO t2 VALUES (1, 'Yes'),(2, 'No'),(4, 'Yes'),(5, 'No');CREATE TABLE t3 (  id int(11) unsigned NOT NULL default '0',  active enum('Yes','No') NOT NULL default 'Yes',  PRIMARY KEY  (id));INSERT INTO t3 VALUES (3, 'Yes');select * from t1 AS m LEFT JOIN t2 AS c1 ON m.c1id = c1.id AND c1.active = 'Yes' LEFT JOIN t3 AS c2 ON m.c2id = c2.id AND c2.active = 'Yes' WHERE m.pid=1  AND (c1.id IS NOT NULL OR c2.id IS NOT NULL);select max(value) from t1 AS m LEFT JOIN t2 AS c1 ON m.c1id = c1.id AND c1.active = 'Yes' LEFT JOIN t3 AS c2 ON m.c2id = c2.id AND c2.active = 'Yes' WHERE m.pid=1  AND (c1.id IS NOT NULL OR c2.id IS NOT NULL);drop table t1,t2,t3;## Test bug in GROUP BY on BLOB that is NULL or empty#create table t1 (a blob null);insert into t1 values (NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(""),(""),(""),("b");select a,count(*) from t1 group by a;set option sql_big_tables=1;select a,count(*) from t1 group by a;drop table t1;## Test of GROUP BY ... ORDER BY NULL optimization#create table t1 (a int not null, b int not null);insert into t1 values (1,1),(1,2),(3,1),(3,2),(2,2),(2,1);create table t2 (a int not null, b int not null, key(a));insert into t2 values (1,3),(3,1),(2,2),(1,1);select t1.a,t2.b from t1,t2 where t1.a=t2.a group by t1.a,t2.b;select t1.a,t2.b from t1,t2 where t1.a=t2.a group by t1.a,t2.b ORDER BY NULL;explain select t1.a,t2.b from t1,t2 where t1.a=t2.a group by t1.a,t2.b;explain select t1.a,t2.b from t1,t2 where t1.a=t2.a group by t1.a,t2.b ORDER BY NULL;drop table t1,t2;## group function arguments in some functions#create table t1 (a int, b int);insert into t1 values (1, 4),(10, 40),(1, 4),(10, 43),(1, 4),(10, 41),(1, 4),(10, 43),(1, 4);select a, MAX(b), INTERVAL (MAX(b), 1,3,10,30,39,40,50,60,100,1000) from t1 group by a;select a, MAX(b), CASE MAX(b) when 4 then 4 when 43 then 43 else 0 end from t1 group by a;select a, MAX(b), FIELD(MAX(b), '43', '4', '5') from t1 group by a;select a, MAX(b), CONCAT_WS(MAX(b), '43', '4', '5') from t1 group by a;select a, MAX(b), ELT(MAX(b), 'a', 'b', 'c', 'd', 'e', 'f') from t1 group by a;select a, MAX(b), MAKE_SET(MAX(b), 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h') from t1 group by a;drop table t1;## Problem with group by and alias#create table t1 (id int not null, qty int not null);insert into t1 values (1,2),(1,3),(2,4),(2,5);select id, sum(qty) as sqty, count(qty) as cqty from t1 group by id having sum(qty)>2 and cqty>1;select id, sum(qty) as sqty from t1 group by id having sqty>2 and count(qty)>1;select id, sum(qty) as sqty, count(qty) as cqty from t1 group by id having sqty>2 and cqty>1;select id, sum(qty) as sqty, count(qty) as cqty from t1 group by id having sum(qty)>2 and count(qty)>1;select count(*), case interval(qty,2,3,4,5,6,7,8) when -1 then NULL when 0 then "zero" when 1 then "one" when 2 then "two" end as category from t1 group by category;select count(*), interval(qty,2,3,4,5,6,7,8) as category from t1 group by category;drop table t1;## Tests for bug #1355: 'Using filesort' is missing in EXPLAIN when ORDER BY# NULL is used.#CREATE TABLE t1 (  userid int(10) unsigned,  score smallint(5) unsigned,  key (score));INSERT INTO t1 VALUES (1,1),(2,2),(1,1),(3,3),(3,3),(3,3),(3,3),(3,3);# Here we select unordered GROUP BY into a temporary talbe, # and then sort it with filesort (GROUP BY in MySQL # implies sorted order of results)SELECT userid,count(*) FROM t1 GROUP BY userid DESC;EXPLAIN SELECT userid,count(*) FROM t1 GROUP BY userid DESC;DROP TABLE t1;CREATE TABLE t1 (  i int(11) default NULL,  j int(11) default NULL);INSERT INTO t1 VALUES (1,2),(2,3),(4,5),(3,5),(1,5),(23,5);SELECT i, COUNT(DISTINCT(i)) FROM t1 GROUP BY j ORDER BY NULL;explain SELECT i, COUNT(DISTINCT(i)) FROM t1 GROUP BY j ORDER BY NULL;DROP TABLE t1;#Test for BUG#6976: Aggregate functions have incorrect NULL-nesscreate table t1 (a int);insert into t1 values(null);select min(a) is null from t1;select min(a) is null or null from t1;select 1 and min(a) is null from t1;drop table t1;# Test for BUG#5400: GROUP_CONCAT returns everything twice.create table t1 ( col1 int, col2 int );insert into t1 values (1,1),(1,2),(1,3),(2,1),(2,2);select group_concat( distinct col1 ) as alias from t1  group by col2 having alias like '%';drop table t1;## Test BUG#8216 when referring in HAVING to n alias which is rand() function#create table t1 (a integer, b integer, c integer);insert into t1 (a,b) values (1,2),(1,3),(2,5);select a, 0.1*0+1 r2, sum(1) r1 from t1 where a = 1 group  by a having r1>1 and r2=1;# rand(100)*10 will be < 2 only for the first row (of 6)select a, round(rand(100)*10) r2, sum(1) r1 from t1 where a = 1 group  by a having r1>1 and r2<=2;select a,sum(b) from t1 where a=1 group by c;select a*sum(b) from t1 where a=1 group by c;select sum(a)*sum(b) from t1 where a=1 group by c;select a,sum(b) from t1 where a=1 group by c having a=1;select a as d,sum(b) from t1 where a=1 group by c having d=1;select sum(a)*sum(b) as d from t1 where a=1 group by c having d > 0;drop table t1;# Test for BUG#9213 GROUP BY query on utf-8 key returns wrong resultscreate table t1(a int);insert into t1 values (0),(1),(2),(3),(4),(5),(6),(8),(9);create table t2 (  a int,  b varchar(200) NOT NULL,  c varchar(50) NOT NULL,  d varchar(100) NOT NULL,  primary key (a,b(132),c,d),  key a (a,b)) charset=utf8;insert into t2 select    x3.a,  -- 3   concat('val-', x3.a + 3*x4.a), -- 12   concat('val-', @a:=x3.a + 3*x4.a + 12*C.a), -- 120   concat('val-', @a + 120*D.a)from t1 x3, t1 x4, t1 C, t1 D where x3.a < 3 and x4.a < 4 and D.a < 4;delete from t2  where a = 2 and b = 'val-2' order by a,b,c,d limit 30;explain select c from t2 where a = 2 and b = 'val-2' group by c;select c from t2 where a = 2 and b = 'val-2' group by c;drop table t1,t2;# Test for BUG#9298 "Wrong handling of int4 unsigned columns in GROUP functions"# (the actual problem was with protocol code, not GROUP BY)create table t1 (b int4 unsigned not null);insert into t1 values(3000000000);select * from t1;select min(b) from t1;drop table t1;## Test for bug #11088: GROUP BY a BLOB column with COUNT(DISTINCT column1) #CREATE TABLE t1 (id int PRIMARY KEY, user_id int, hostname longtext);INSERT INTO t1 VALUES  (1, 7, 'cache-dtc-af05.proxy.aol.com'),  (2, 3, 'what.ever.com'),  (3, 7, 'cache-dtc-af05.proxy.aol.com'),  (4, 7, 'cache-dtc-af05.proxy.aol.com');SELECT hostname, COUNT(DISTINCT user_id) as no FROM t1  WHERE hostname LIKE '%aol%'    GROUP BY hostname;DROP TABLE t1;## Test for bug #8614: GROUP BY 'const' with DISTINCT  #CREATE TABLE t1 (a  int, b int);INSERT INTO t1 VALUES (1,2), (1,3);SELECT a, b FROM t1 GROUP BY 'const';SELECT DISTINCT a, b FROM t1 GROUP BY 'const';DROP TABLE t1;## Test for bug #11385: GROUP BY for datetime converted to decimals  #CREATE TABLE t1 (id INT, dt DATETIME);INSERT INTO t1 VALUES ( 1, '2005-05-01 12:30:00' );INSERT INTO t1 VALUES ( 1, '2005-05-01 12:30:00' );INSERT INTO t1 VALUES ( 1, '2005-05-01 12:30:00' );INSERT INTO t1 VALUES ( 1, '2005-05-01 12:30:00' );SELECT dt DIV 1 AS f, id FROM t1 GROUP BY f;DROP TABLE t1;## Test for bug #11295: GROUP BY a BLOB column with COUNT(DISTINCT column1) #                      when the BLOB column takes NULL values# CREATE TABLE t1 (id varchar(20) NOT NULL);INSERT INTO t1 VALUES ('trans1'), ('trans2');CREATE TABLE t2 (id varchar(20) NOT NULL, err_comment blob NOT NULL);INSERT INTO t2 VALUES ('trans1', 'a problem');SELECT COUNT(DISTINCT(t1.id)), LEFT(err_comment, 256) AS comment  FROM t1 LEFT JOIN t2 ON t1.id=t2.id GROUP BY comment;DROP TABLE t1, t2;## Bug #12266 GROUP BY expression on DATE column produces result with#            reduced length#create table t1 (f1 date);insert into t1 values('2005-06-06');insert into t1 values('2005-06-06'); select date(left(f1+0,8)) from t1 group by 1;drop table t1;## Test for bug #11414: crash on Windows for a simple GROUP BY query #                      CREATE TABLE t1 (n int);INSERT INTO t1 VALUES (1);SELECT n+1 AS n FROM t1 GROUP BY n;DROP TABLE t1;## BUG#12695: Item_func_isnull::update_used_tables# did not update const_item_cache#create table t1(f1 varchar(5) key);insert into t1 values (1),(2);select sql_buffer_result max(f1) is null from t1;select sql_buffer_result max(f1)+1 from t1;drop table t1;# End of 4.1 tests## Bug#11211: Ambiguous column reference in GROUP BY.#create table t1 (c1 char(3), c2 char(3));create table t2 (c3 char(3), c4 char(3));insert into t1 values ('aaa', 'bb1'), ('aaa', 'bb2');insert into t2 values ('aaa', 'bb1'), ('aaa', 'bb2');# query with ambiguous column reference 'c2'select t1.c1 as c2 from t1, t2 where t1.c2 = t2.c4group by c2;show warnings;# this query has no ambiguityselect t1.c1 as c2 from t1, t2 where t1.c2 = t2.c4group by t1.c1;show warnings;drop table t1, t2;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -