func_group.result
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:30k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. drop table if exists t1,t2;
  2. create table t1 (grp int, a bigint unsigned, c char(10) not null);
  3. insert into t1 values (1,1,"a");
  4. insert into t1 values (2,2,"b");
  5. insert into t1 values (2,3,"c");
  6. insert into t1 values (3,4,"E");
  7. insert into t1 values (3,5,"C");
  8. insert into t1 values (3,6,"D");
  9. select a,c,sum(a) from t1 group by a;
  10. a c sum(a)
  11. 1 a 1
  12. 2 b 2
  13. 3 c 3
  14. 4 E 4
  15. 5 C 5
  16. 6 D 6
  17. select a,c,sum(a) from t1 where a > 10 group by a;
  18. a c sum(a)
  19. select sum(a) from t1 where a > 10;
  20. sum(a)
  21. NULL
  22. select a from t1 order by rand(10);
  23. a
  24. 2
  25. 6
  26. 1
  27. 3
  28. 5
  29. 4
  30. select distinct a from t1 order by rand(10);
  31. a
  32. 2
  33. 6
  34. 1
  35. 3
  36. 5
  37. 4
  38. select count(distinct a),count(distinct grp) from t1;
  39. count(distinct a) count(distinct grp)
  40. 6 3
  41. insert into t1 values (null,null,'');
  42. select count(distinct a),count(distinct grp) from t1;
  43. count(distinct a) count(distinct grp)
  44. 6 3
  45. 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;
  46. 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)
  47. 21 6 3.5000 1.7078 2.9167 7 0 1 6 E
  48. 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;
  49. 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)
  50. NULL NULL 0 NULL NULL NULL 0 18446744073709551615 NULL NULL
  51. 1 1 1 1.0000 0.0000 0.0000 1 1 1 1 a a
  52. 2 5 2 2.5000 0.5000 0.2500 3 2 2 3 b c
  53. 3 15 3 5.0000 0.8165 0.6667 7 4 4 6 C E
  54. 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;
  55. grp sum
  56. NULL NULL
  57. 1 7
  58. 2 20.25
  59. 3 45.483163247594
  60. create table t2 (grp int, a bigint unsigned, c char(10));
  61. insert into t2 select grp,max(a)+max(grp),max(c) from t1 group by grp;
  62. replace into t2 select grp, a, c from t1 limit 2,1;
  63. select * from t2;
  64. grp a c
  65. NULL NULL
  66. 1 2 a
  67. 2 5 c
  68. 3 9 E
  69. 2 3 c
  70. drop table t1,t2;
  71. CREATE TABLE t1 (id int(11),value1 float(10,2));
  72. INSERT INTO t1 VALUES (1,0.00),(1,1.00), (1,2.00), (2,10.00), (2,11.00), (2,12.00);
  73. CREATE TABLE t2 (id int(11),name char(20));
  74. INSERT INTO t2 VALUES (1,'Set One'),(2,'Set Two');
  75. select id, avg(value1), std(value1), variance(value1) from t1 group by id;
  76. id avg(value1) std(value1) variance(value1)
  77. 1 1.000000 0.816497 0.666667
  78. 2 11.000000 0.816497 0.666667
  79. select name, avg(value1), std(value1), variance(value1) from t1, t2 where t1.id = t2.id group by t1.id;
  80. name avg(value1) std(value1) variance(value1)
  81. Set One 1.000000 0.816497 0.666667
  82. Set Two 11.000000 0.816497 0.666667
  83. drop table t1,t2;
  84. create table t1 (id int not null);
  85. create table t2 (id int not null,rating int null);
  86. insert into t1 values(1),(2),(3);
  87. insert into t2 values(1, 3),(2, NULL),(2, NULL),(3, 2),(3, NULL);
  88. select t1.id, avg(rating) from t1 left join t2 on ( t1.id = t2.id ) group by t1.id;
  89. id avg(rating)
  90. 1 3.0000
  91. 2 NULL
  92. 3 2.0000
  93. drop table t1,t2;
  94. create table t1 (a smallint(6) primary key, c char(10), b text);
  95. INSERT INTO t1 VALUES (1,'1','1');
  96. INSERT INTO t1 VALUES (2,'2','2');
  97. INSERT INTO t1 VALUES (4,'4','4');
  98. select count(*) from t1;
  99. count(*)
  100. 3
  101. select count(*) from t1 where a = 1;
  102. count(*)
  103. 1
  104. select count(*) from t1 where a = 100;
  105. count(*)
  106. 0
  107. select count(*) from t1 where a >= 10;
  108. count(*)
  109. 0
  110. select count(a) from t1 where a = 1;
  111. count(a)
  112. 1
  113. select count(a) from t1 where a = 100;
  114. count(a)
  115. 0
  116. select count(a) from t1 where a >= 10;
  117. count(a)
  118. 0
  119. select count(b) from t1 where b >= 2;
  120. count(b)
  121. 2
  122. select count(b) from t1 where b >= 10;
  123. count(b)
  124. 0
  125. select count(c) from t1 where c = 10;
  126. count(c)
  127. 0
  128. drop table t1;
  129. CREATE TABLE t1 (d DATETIME, i INT);
  130. INSERT INTO t1 VALUES (NOW(), 1);
  131. SELECT COUNT(i), i, COUNT(i)*i FROM t1 GROUP BY i;
  132. COUNT(i) i COUNT(i)*i
  133. 1 1 1
  134. SELECT COUNT(i), (i+0), COUNT(i)*(i+0) FROM t1 GROUP BY i;
  135. COUNT(i) (i+0) COUNT(i)*(i+0)
  136. 1 1 1
  137. DROP TABLE t1;
  138. create table t1 (
  139. num float(5,2),
  140. user char(20)
  141. );
  142. insert into t1 values (10.3,'nem'),(20.53,'monty'),(30.23,'sinisa');
  143. insert into t1 values (30.13,'nem'),(20.98,'monty'),(10.45,'sinisa');
  144. insert into t1 values (5.2,'nem'),(8.64,'monty'),(11.12,'sinisa');
  145. select sum(num) from t1;
  146. sum(num)
  147. 147.58
  148. select sum(num) from t1 group by user;
  149. sum(num)
  150. 50.15
  151. 45.63
  152. 51.80
  153. drop table t1;
  154. create table t1 (a1 int, a2 char(3), key k1(a1), key k2(a2));
  155. insert into t1 values(10,'aaa'), (10,null), (10,'bbb'), (20,'zzz');
  156. create table t2(a1 char(3), a2 int, a3 real, key k1(a1), key k2(a2, a1));
  157. select * from t1;
  158. a1 a2
  159. 10 aaa
  160. 10 NULL
  161. 10 bbb
  162. 20 zzz
  163. select min(a2) from t1;
  164. min(a2)
  165. aaa
  166. select max(t1.a1), max(t2.a2) from t1, t2;
  167. max(t1.a1) max(t2.a2)
  168. NULL NULL
  169. select max(t1.a1) from t1, t2;
  170. max(t1.a1)
  171. NULL
  172. select max(t2.a2), max(t1.a1) from t1, t2;
  173. max(t2.a2) max(t1.a1)
  174. NULL NULL
  175. explain select min(a2) from t1;
  176. id select_type table type possible_keys key key_len ref rows Extra
  177. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  178. explain select max(t1.a1), max(t2.a2) from t1, t2;
  179. id select_type table type possible_keys key key_len ref rows Extra
  180. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No matching min/max row
  181. insert into t2 values('AAA', 10, 0.5);
  182. insert into t2 values('BBB', 20, 1.0);
  183. select t1.a1, t1.a2, t2.a1, t2.a2 from t1,t2;
  184. a1 a2 a1 a2
  185. 10 aaa AAA 10
  186. 10 NULL AAA 10
  187. 10 bbb AAA 10
  188. 20 zzz AAA 10
  189. 10 aaa BBB 20
  190. 10 NULL BBB 20
  191. 10 bbb BBB 20
  192. 20 zzz BBB 20
  193. select max(t1.a1), max(t2.a1) from t1, t2 where t2.a2=9;
  194. max(t1.a1) max(t2.a1)
  195. NULL NULL
  196. select max(t2.a1), max(t1.a1) from t1, t2 where t2.a2=9;
  197. max(t2.a1) max(t1.a1)
  198. NULL NULL
  199. select t1.a1, t1.a2, t2.a1, t2.a2 from t1 left outer join t2 on t1.a1=10;
  200. a1 a2 a1 a2
  201. 10 aaa AAA 10
  202. 10 aaa BBB 20
  203. 10 NULL AAA 10
  204. 10 NULL BBB 20
  205. 10 bbb AAA 10
  206. 10 bbb BBB 20
  207. 20 zzz NULL NULL
  208. select max(t1.a2) from t1 left outer join t2 on t1.a1=10;
  209. max(t1.a2)
  210. zzz
  211. select max(t2.a1) from t2 left outer join t1 on t2.a2=10 where t2.a2=20;
  212. max(t2.a1)
  213. BBB
  214. select max(t2.a1) from t2 left outer join t1 on t2.a2=10 where t2.a2=10;
  215. max(t2.a1)
  216. AAA
  217. select max(t2.a1) from t1 left outer join t2 on t1.a2=t2.a1 and 1=0 where t2.a1='AAA';
  218. max(t2.a1)
  219. NULL
  220. select max(t1.a2),max(t2.a1) from t1 left outer join t2 on t1.a1=10;
  221. max(t1.a2) max(t2.a1)
  222. zzz BBB
  223. drop table t1,t2;
  224. CREATE TABLE t1 (a int, b int);
  225. select count(b), sum(b), avg(b), std(b), min(b), max(b), bit_and(b), bit_or(b) from t1;
  226. count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b)
  227. 0 NULL NULL NULL NULL NULL 18446744073709551615 0
  228. 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;
  229. a count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b)
  230. insert into t1 values (1,null);
  231. 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;
  232. a count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b)
  233. 1 0 NULL NULL NULL NULL NULL 18446744073709551615 0
  234. insert into t1 values (1,null);
  235. insert into t1 values (2,null);
  236. 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;
  237. a count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b)
  238. 1 0 NULL NULL NULL NULL NULL 18446744073709551615 0
  239. 2 0 NULL NULL NULL NULL NULL 18446744073709551615 0
  240. 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;
  241. a count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b)
  242. 1 0 NULL NULL NULL NULL NULL 18446744073709551615 0
  243. 2 0 NULL NULL NULL NULL NULL 18446744073709551615 0
  244. insert into t1 values (2,1);
  245. 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;
  246. a count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b)
  247. 1 0 NULL NULL NULL NULL NULL 18446744073709551615 0
  248. 2 1 1 1.0000 0.0000 1 1 1 1
  249. 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;
  250. a count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b)
  251. 1 0 NULL NULL NULL NULL NULL 18446744073709551615 0
  252. 2 1 1 1.0000 0.0000 1 1 1 1
  253. insert into t1 values (3,1);
  254. 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;
  255. a count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b)
  256. 1 0 NULL NULL NULL NULL NULL 18446744073709551615 0
  257. 2 1 1 1.0000 0.0000 1 1 1 1
  258. 3 1 1 1.0000 0.0000 1 1 1 1
  259. 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;
  260. a count(b) sum(b) avg(b) std(b) min(b) max(b) bit_and(b) bit_or(b) bit_xor(b)
  261. 1 0 NULL NULL NULL NULL NULL 18446744073709551615 0 0
  262. 2 1 1 1.0000 0.0000 1 1 1 1 1
  263. 3 1 1 1.0000 0.0000 1 1 1 1 1
  264. 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;
  265. id select_type table type possible_keys key key_len ref rows Extra
  266. 1 SIMPLE t1 ALL NULL NULL NULL NULL 5 Using filesort
  267. Warnings:
  268. 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
  269. drop table t1;
  270. create table t1 (col int);
  271. insert into t1 values (-1), (-2), (-3);
  272. select bit_and(col), bit_or(col) from t1;
  273. bit_and(col) bit_or(col)
  274. 18446744073709551612 18446744073709551615
  275. select SQL_BIG_RESULT bit_and(col), bit_or(col) from t1 group by col;
  276. bit_and(col) bit_or(col)
  277. 18446744073709551613 18446744073709551613
  278. 18446744073709551614 18446744073709551614
  279. 18446744073709551615 18446744073709551615
  280. drop table t1;
  281. create table t1 (a int);
  282. select avg(2) from t1;
  283. avg(2)
  284. NULL
  285. drop table t1;
  286. create table t1(
  287. a1 char(3) primary key,
  288. a2 smallint,
  289. a3 char(3),
  290. a4 real,
  291. a5 date,
  292. key k1(a2,a3),
  293. key k2(a4 desc,a1),
  294. key k3(a5,a1)
  295. );
  296. create table t2(
  297. a1 char(3) primary key,
  298. a2 char(17),
  299. a3 char(2),
  300. a4 char(3),
  301. key k1(a3, a2),
  302. key k2(a4)
  303. );
  304. insert into t1 values('AME',0,'SEA',0.100,date'1942-02-19');
  305. insert into t1 values('HBR',1,'SEA',0.085,date'1948-03-05');
  306. insert into t1 values('BOT',2,'SEA',0.085,date'1951-11-29');
  307. insert into t1 values('BMC',3,'SEA',0.085,date'1958-09-08');
  308. insert into t1 values('TWU',0,'LAX',0.080,date'1969-10-05');
  309. insert into t1 values('BDL',0,'DEN',0.080,date'1960-11-27');
  310. insert into t1 values('DTX',1,'NYC',0.080,date'1961-05-04');
  311. insert into t1 values('PLS',1,'WDC',0.075,date'1949-01-02');
  312. insert into t1 values('ZAJ',2,'CHI',0.075,date'1960-06-15');
  313. insert into t1 values('VVV',2,'MIN',0.075,date'1959-06-28');
  314. insert into t1 values('GTM',3,'DAL',0.070,date'1977-09-23');
  315. insert into t1 values('SSJ',null,'CHI',null,date'1974-03-19');
  316. insert into t1 values('KKK',3,'ATL',null,null);
  317. insert into t1 values('XXX',null,'MIN',null,null);
  318. insert into t2 values('TKF','Seattle','WA','AME');
  319. insert into t2 values('LCC','Los Angeles','CA','TWU');
  320. insert into t2 values('DEN','Denver','CO','BDL');
  321. insert into t2 values('SDC','San Diego','CA','TWU');
  322. insert into t2 values('NOL','New Orleans','LA','GTM');
  323. insert into t2 values('LAK','Los Angeles','CA','TWU');
  324. select * from t1;
  325. a1 a2 a3 a4 a5
  326. AME 0 SEA 0.1 1942-02-19
  327. HBR 1 SEA 0.085 1948-03-05
  328. BOT 2 SEA 0.085 1951-11-29
  329. BMC 3 SEA 0.085 1958-09-08
  330. TWU 0 LAX 0.08 1969-10-05
  331. BDL 0 DEN 0.08 1960-11-27
  332. DTX 1 NYC 0.08 1961-05-04
  333. PLS 1 WDC 0.075 1949-01-02
  334. ZAJ 2 CHI 0.075 1960-06-15
  335. VVV 2 MIN 0.075 1959-06-28
  336. GTM 3 DAL 0.07 1977-09-23
  337. SSJ NULL CHI NULL 1974-03-19
  338. KKK 3 ATL NULL NULL
  339. XXX NULL MIN NULL NULL
  340. select * from t2;
  341. a1 a2 a3 a4
  342. TKF Seattle WA AME
  343. LCC Los Angeles CA TWU
  344. DEN Denver CO BDL
  345. SDC San Diego CA TWU
  346. NOL New Orleans LA GTM
  347. LAK Los Angeles CA TWU
  348. explain 
  349. select min(a1) from t1;
  350. id select_type table type possible_keys key key_len ref rows Extra
  351. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  352. select min(a1) from t1;
  353. min(a1)
  354. AME
  355. explain 
  356. select max(a4) from t1;
  357. id select_type table type possible_keys key key_len ref rows Extra
  358. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  359. select max(a4) from t1;
  360. max(a4)
  361. 0.1
  362. explain 
  363. select min(a5), max(a5) from t1;
  364. id select_type table type possible_keys key key_len ref rows Extra
  365. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  366. select min(a5), max(a5) from t1;
  367. min(a5) max(a5)
  368. 1942-02-19 1977-09-23
  369. explain 
  370. select min(a3) from t1 where a2 = 2;
  371. id select_type table type possible_keys key key_len ref rows Extra
  372. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  373. select min(a3) from t1 where a2 = 2;
  374. min(a3)
  375. CHI
  376. explain 
  377. select min(a1), max(a1) from t1 where a4 = 0.080;
  378. id select_type table type possible_keys key key_len ref rows Extra
  379. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  380. select min(a1), max(a1) from t1 where a4 = 0.080;
  381. min(a1) max(a1)
  382. BDL TWU
  383. explain 
  384. select min(t1.a5), max(t2.a3) from t1, t2;
  385. id select_type table type possible_keys key key_len ref rows Extra
  386. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  387. select min(t1.a5), max(t2.a3) from t1, t2;
  388. min(t1.a5) max(t2.a3)
  389. 1942-02-19 WA
  390. explain 
  391. select min(t1.a3), max(t2.a2) from t1, t2 where t1.a2 = 0 and t2.a3 = 'CA';
  392. id select_type table type possible_keys key key_len ref rows Extra
  393. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  394. select min(t1.a3), max(t2.a2) from t1, t2 where t1.a2 = 0 and t2.a3 = 'CA';
  395. min(t1.a3) max(t2.a2)
  396. DEN San Diego
  397. explain 
  398. select min(a1) from t1 where a1 > 'KKK';
  399. id select_type table type possible_keys key key_len ref rows Extra
  400. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  401. select min(a1) from t1 where a1 > 'KKK';
  402. min(a1)
  403. PLS
  404. explain 
  405. select min(a1) from t1 where a1 >= 'KKK';
  406. id select_type table type possible_keys key key_len ref rows Extra
  407. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  408. select min(a1) from t1 where a1 >= 'KKK';
  409. min(a1)
  410. KKK
  411. explain 
  412. select max(a3) from t1 where a2 = 2 and a3 < 'SEA';
  413. id select_type table type possible_keys key key_len ref rows Extra
  414. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  415. select max(a3) from t1 where a2 = 2 and a3 < 'SEA';
  416. max(a3)
  417. MIN
  418. explain 
  419. select max(a5) from t1 where a5 < date'1970-01-01';
  420. id select_type table type possible_keys key key_len ref rows Extra
  421. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  422. select max(a5) from t1 where a5 < date'1970-01-01';
  423. max(a5)
  424. 1969-10-05
  425. explain 
  426. select max(a3) from t1 where a2 is null;
  427. id select_type table type possible_keys key key_len ref rows Extra
  428. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  429. select max(a3) from t1 where a2 is null;
  430. max(a3)
  431. MIN
  432. explain 
  433. select max(a3) from t1 where a2 = 0 and a3 between 'K' and 'Q';
  434. id select_type table type possible_keys key key_len ref rows Extra
  435. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  436. select max(a3) from t1 where a2 = 0 and a3 between 'K' and 'Q';
  437. max(a3)
  438. LAX
  439. explain
  440. select min(a1), max(a1) from t1 where a1 between 'A' and 'P';
  441. id select_type table type possible_keys key key_len ref rows Extra
  442. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  443. select min(a1), max(a1) from t1 where a1 between 'A' and 'P';
  444. min(a1) max(a1)
  445. AME KKK
  446. explain 
  447. select max(a3) from t1 where a3 < 'SEA' and a2 = 2 and a3 <= 'MIN';
  448. id select_type table type possible_keys key key_len ref rows Extra
  449. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  450. select max(a3) from t1 where a3 < 'SEA' and a2 = 2 and a3 <= 'MIN';
  451. max(a3)
  452. MIN
  453. explain 
  454. select max(a3) from t1 where a3 = 'MIN' and a2 = 2;
  455. id select_type table type possible_keys key key_len ref rows Extra
  456. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  457. select max(a3) from t1 where a3 = 'MIN' and a2 = 2;
  458. max(a3)
  459. MIN
  460. explain 
  461. select max(a3) from t1 where a3 = 'DEN' and a2 = 2;
  462. id select_type table type possible_keys key key_len ref rows Extra
  463. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No matching min/max row
  464. select max(a3) from t1 where a3 = 'DEN' and a2 = 2;
  465. max(a3)
  466. NULL
  467. explain
  468. select max(t1.a3), min(t2.a2) from t1, t2 where t1.a2 = 2 and t1.a3 < 'MIN' and t2.a3 = 'CA';
  469. id select_type table type possible_keys key key_len ref rows Extra
  470. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  471. select max(t1.a3), min(t2.a2) from t1, t2 where t1.a2 = 2 and t1.a3 < 'MIN' and t2.a3 = 'CA';
  472. max(t1.a3) min(t2.a2)
  473. CHI Los Angeles
  474. explain
  475. select max(a3) from t1 where a2 is null and a2 = 2;
  476. id select_type table type possible_keys key key_len ref rows Extra
  477. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
  478. select max(a3) from t1 where a2 is null and a2 = 2;
  479. max(a3)
  480. NULL
  481. explain
  482. select max(a2) from t1 where a2 >= 1;
  483. id select_type table type possible_keys key key_len ref rows Extra
  484. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  485. select max(a2) from t1 where a2 >= 1;
  486. max(a2)
  487. 3
  488. explain
  489. select min(a3) from t1 where a2 = 2 and a3 < 'SEA';
  490. id select_type table type possible_keys key key_len ref rows Extra
  491. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  492. select min(a3) from t1 where a2 = 2 and a3 < 'SEA';
  493. min(a3)
  494. CHI
  495. explain
  496. select min(a3) from t1 where a2 = 4;
  497. id select_type table type possible_keys key key_len ref rows Extra
  498. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No matching min/max row
  499. select min(a3) from t1 where a2 = 4;
  500. min(a3)
  501. NULL
  502. explain
  503. select min(a3) from t1 where a2 = 2 and a3 > 'SEA';
  504. id select_type table type possible_keys key key_len ref rows Extra
  505. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No matching min/max row
  506. select min(a3) from t1 where a2 = 2 and a3 > 'SEA';
  507. min(a3)
  508. NULL
  509. explain
  510. select (min(a4)+max(a4))/2 from t1;
  511. id select_type table type possible_keys key key_len ref rows Extra
  512. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  513. select (min(a4)+max(a4))/2 from t1;
  514. (min(a4)+max(a4))/2
  515. 0.085
  516. explain
  517. select min(a3) from t1 where 2 = a2;
  518. id select_type table type possible_keys key key_len ref rows Extra
  519. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  520. select min(a3) from t1 where 2 = a2;
  521. min(a3)
  522. CHI
  523. explain
  524. select max(a3) from t1 where a2 = 2 and 'SEA' > a3;
  525. id select_type table type possible_keys key key_len ref rows Extra
  526. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  527. select max(a3) from t1 where a2 = 2 and 'SEA' > a3;
  528. max(a3)
  529. MIN
  530. explain
  531. select max(a3) from t1 where a2 = 2 and 'SEA' < a3;
  532. id select_type table type possible_keys key key_len ref rows Extra
  533. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No matching min/max row
  534. select max(a3) from t1 where a2 = 2 and 'SEA' < a3;
  535. max(a3)
  536. NULL
  537. explain
  538. select min(a3) from t1 where a2 = 2 and a3 >= 'CHI';
  539. id select_type table type possible_keys key key_len ref rows Extra
  540. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  541. select min(a3) from t1 where a2 = 2 and a3 >= 'CHI';
  542. min(a3)
  543. CHI
  544. explain
  545. select min(a3) from t1 where a2 = 2 and a3 >= 'CHI' and a3 < 'SEA';
  546. id select_type table type possible_keys key key_len ref rows Extra
  547. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  548. select min(a3) from t1 where a2 = 2 and a3 >= 'CHI' and a3 < 'SEA';
  549. min(a3)
  550. CHI
  551. explain
  552. select min(a3) from t1 where a2 = 2 and a3 >= 'CHI' and a3 = 'MIN';
  553. id select_type table type possible_keys key key_len ref rows Extra
  554. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  555. select min(a3) from t1 where a2 = 2 and a3 >= 'CHI' and a3 = 'MIN';
  556. min(a3)
  557. MIN
  558. explain
  559. select min(a3) from t1 where a2 = 2 and a3 >= 'SEA' and a3 = 'MIN';
  560. id select_type table type possible_keys key key_len ref rows Extra
  561. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
  562. select min(a3) from t1 where a2 = 2 and a3 >= 'SEA' and a3 = 'MIN';
  563. min(a3)
  564. NULL
  565. explain
  566. select min(t1.a1), min(t2.a4) from t1,t2 where t1.a1 < 'KKK' and t2.a4 < 'KKK';
  567. id select_type table type possible_keys key key_len ref rows Extra
  568. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  569. select min(t1.a1), min(t2.a4) from t1,t2 where t1.a1 < 'KKK' and t2.a4 < 'KKK';
  570. min(t1.a1) min(t2.a4)
  571. AME AME
  572. explain 
  573. select min(a1) from t1 where a1 > 'KKK' or a1 < 'XXX';
  574. id select_type table type possible_keys key key_len ref rows Extra
  575. 1 SIMPLE t1 range PRIMARY PRIMARY 0 NULL 15 Using where; Using index
  576. explain 
  577. select min(a1) from t1 where a1 != 'KKK';
  578. id select_type table type possible_keys key key_len ref rows Extra
  579. 1 SIMPLE t1 range PRIMARY PRIMARY 3 NULL 14 Using where; Using index
  580. explain
  581. select max(a3) from t1 where a2 < 2 and a3 < 'SEA';
  582. id select_type table type possible_keys key key_len ref rows Extra
  583. 1 SIMPLE t1 range k1 k1 3 NULL 5 Using where; Using index
  584. explain
  585. select max(t1.a3), min(t2.a2) from t1, t2 where t1.a2 = 2 and t1.a3 < 'MIN' and t2.a3 > 'CA';
  586. id select_type table type possible_keys key key_len ref rows Extra
  587. 1 SIMPLE t1 range k1 k1 7 NULL 1 Using where; Using index
  588. 1 SIMPLE t2 range k1 k1 3 NULL 4 Using where; Using index
  589. explain
  590. select min(a4 - 0.01) from t1;
  591. id select_type table type possible_keys key key_len ref rows Extra
  592. 1 SIMPLE t1 index NULL k2 12 NULL 14 Using index
  593. explain
  594. select max(a4 + 0.01) from t1;
  595. id select_type table type possible_keys key key_len ref rows Extra
  596. 1 SIMPLE t1 index NULL k2 12 NULL 14 Using index
  597. explain
  598. select min(a3) from t1 where (a2 +1 ) is null;
  599. id select_type table type possible_keys key key_len ref rows Extra
  600. 1 SIMPLE t1 index NULL k1 7 NULL 14 Using where; Using index
  601. explain
  602. select min(a3) from t1 where (a2 + 1) = 2;
  603. id select_type table type possible_keys key key_len ref rows Extra
  604. 1 SIMPLE t1 index NULL k1 7 NULL 14 Using where; Using index
  605. explain
  606. select min(a3) from t1 where 2 = (a2 + 1);
  607. id select_type table type possible_keys key key_len ref rows Extra
  608. 1 SIMPLE t1 index NULL k1 7 NULL 14 Using where; Using index
  609. explain
  610. select min(a2) from t1 where a2 < 2 * a2 - 8;
  611. id select_type table type possible_keys key key_len ref rows Extra
  612. 1 SIMPLE t1 index NULL k1 7 NULL 14 Using where; Using index
  613. explain
  614. select min(a1) from t1  where a1 between a3 and 'KKK';
  615. id select_type table type possible_keys key key_len ref rows Extra
  616. 1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 14 Using where
  617. explain
  618. select min(a4) from t1  where (a4 + 0.01) between 0.07 and 0.08;
  619. id select_type table type possible_keys key key_len ref rows Extra
  620. 1 SIMPLE t1 index NULL k2 12 NULL 14 Using where; Using index
  621. explain
  622. select concat(min(t1.a1),min(t2.a4)) from t1, t2 where t2.a4 <> 'AME';
  623. id select_type table type possible_keys key key_len ref rows Extra
  624. 1 SIMPLE t2 range k2 k2 4 NULL 6 Using where; Using index
  625. 1 SIMPLE t1 index NULL PRIMARY 3 NULL 14 Using index
  626. drop table t1, t2;
  627. create table t1 (USR_ID integer not null, MAX_REQ integer not null, constraint PK_SEA_USER primary key (USR_ID)) engine=InnoDB;
  628. insert into t1 values (1, 3);
  629. 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;
  630. count(*) + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ + MAX_REQ - MAX_REQ
  631. 1
  632. select Case When Count(*) < MAX_REQ Then 1 Else 0 End from t1 where t1.USR_ID = 1 group by MAX_REQ;
  633. Case When Count(*) < MAX_REQ Then 1 Else 0 End
  634. 1
  635. drop table t1;
  636. create table t1 (a char(10));
  637. insert into t1 values ('a'),('b'),('c');
  638. select coercibility(max(a)) from t1;
  639. coercibility(max(a))
  640. 2
  641. drop table t1;
  642. create table t1 (a char character set latin2);
  643. insert into t1 values ('a'),('b');
  644. select charset(max(a)), coercibility(max(a)),
  645. charset(min(a)), coercibility(min(a)) from t1;
  646. charset(max(a)) coercibility(max(a)) charset(min(a)) coercibility(min(a))
  647. latin2 2 latin2 2
  648. create table t2 select max(a),min(a) from t1;
  649. show create table t2;
  650. Table Create Table
  651. t2 CREATE TABLE `t2` (
  652.   `max(a)` char(1) character set latin2 default NULL,
  653.   `min(a)` char(1) character set latin2 default NULL
  654. ) ENGINE=MyISAM DEFAULT CHARSET=latin1
  655. drop table t2,t1;
  656. create table t1 (a int);
  657. insert into t1 values (1);
  658. select max(a) as b from t1 having b=1;
  659. b
  660. 1
  661. select a from t1 having a=1;
  662. a
  663. 1
  664. drop table t1;
  665. create table t1 (a int);
  666. select variance(2) from t1;
  667. variance(2)
  668. NULL
  669. select stddev(2) from t1;
  670. stddev(2)
  671. NULL
  672. drop table t1;
  673. create table t1 (a int);
  674. insert into t1 values (1),(2);
  675. prepare stmt1 from 'SELECT COUNT(*) FROM t1';
  676. execute stmt1;
  677. COUNT(*)
  678. 2
  679. execute stmt1;
  680. COUNT(*)
  681. 2
  682. execute stmt1;
  683. COUNT(*)
  684. 2
  685. deallocate prepare stmt1;
  686. drop table t1;
  687. create table t1 (a int, primary key(a));
  688. insert into t1 values (1),(2);
  689. prepare stmt1 from 'SELECT max(a) FROM t1';
  690. execute stmt1;
  691. max(a)
  692. 2
  693. execute stmt1;
  694. max(a)
  695. 2
  696. execute stmt1;
  697. max(a)
  698. 2
  699. deallocate prepare stmt1;
  700. drop table t1;
  701. CREATE TABLE t1 (a int primary key);
  702. INSERT INTO t1 VALUES (1),(2),(3),(4);
  703. SELECT MAX(a) FROM t1 WHERE a > 5;
  704. MAX(a)
  705. NULL
  706. SELECT MIN(a) FROM t1 WHERE a < 0;
  707. MIN(a)
  708. NULL
  709. DROP TABLE t1;
  710. CREATE TABLE t1 (
  711. id int(10) unsigned NOT NULL auto_increment,
  712. val enum('one','two','three') NOT NULL default 'one',
  713. PRIMARY KEY  (id)
  714. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  715. INSERT INTO t1 VALUES
  716. (1,'one'),(2,'two'),(3,'three'),(4,'one'),(5,'two');
  717. select val, count(*) from t1 group by val;
  718. val count(*)
  719. one 2
  720. two 2
  721. three 1
  722. drop table t1;
  723. CREATE TABLE t1 (
  724. id int(10) unsigned NOT NULL auto_increment,
  725. val set('one','two','three') NOT NULL default 'one',
  726. PRIMARY KEY  (id)
  727. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  728. INSERT INTO t1 VALUES
  729. (1,'one'),(2,'two'),(3,'three'),(4,'one'),(5,'two');
  730. select val, count(*) from t1 group by val;
  731. val count(*)
  732. one 2
  733. two 2
  734. three 1
  735. drop table t1;
  736. create table t1(a int, b datetime);
  737. insert into t1 values (1, NOW()), (2, NOW());
  738. create table t2 select MAX(b) from t1 group by a;
  739. show create table t2;
  740. Table Create Table
  741. t2 CREATE TABLE `t2` (
  742.   `MAX(b)` datetime default NULL
  743. ) ENGINE=MyISAM DEFAULT CHARSET=latin1
  744. drop table t1, t2;
  745. create table t1(f1 datetime);
  746. insert into t1 values (now());
  747. create table t2 select f2 from (select max(now()) f2 from t1) a;
  748. show columns from t2;
  749. Field Type Null Key Default Extra
  750. f2 datetime YES NULL
  751. drop table t2;
  752. create table t2 select f2 from (select now() f2 from t1) a;
  753. show columns from t2;
  754. Field Type Null Key Default Extra
  755. f2 datetime 0000-00-00 00:00:00
  756. drop table t2, t1;
  757. CREATE TABLE t1(
  758. id int PRIMARY KEY,
  759. a  int,
  760. b  int,
  761. INDEX i_b_id(a,b,id),
  762. INDEX i_id(a,id)
  763. );
  764. INSERT INTO t1 VALUES 
  765. (1,1,4), (2,2,1), (3,1,3), (4,2,1), (5,1,1);
  766. SELECT MAX(id) FROM t1 WHERE id < 3 AND a=2 AND b=6;
  767. MAX(id)
  768. NULL
  769. DROP TABLE t1;
  770. CREATE TABLE t1(
  771. id int PRIMARY KEY,
  772. a  int,
  773. b  int,
  774. INDEX i_id(a,id),
  775. INDEX i_b_id(a,b,id)
  776. );
  777. INSERT INTO t1 VALUES 
  778. (1,1,4), (2,2,1), (3,1,3), (4,2,1), (5,1,1);
  779. SELECT MAX(id) FROM t1 WHERE id < 3 AND a=2 AND b=6;
  780. MAX(id)
  781. NULL
  782. DROP TABLE t1;
  783. create table t1m (a int) engine=myisam;
  784. create table t1i (a int) engine=innodb;
  785. create table t2m (a int) engine=myisam;
  786. create table t2i (a int) engine=innodb;
  787. insert into t2m values (5);
  788. insert into t2i values (5);
  789. select min(a) from t1m;
  790. min(a)
  791. NULL
  792. select min(7) from t1m;
  793. min(7)
  794. NULL
  795. select min(7) from DUAL;
  796. min(7)
  797. NULL
  798. explain select min(7) from t2m join t1m;
  799. id select_type table type possible_keys key key_len ref rows Extra
  800. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  801. select min(7) from t2m join t1m;
  802. min(7)
  803. NULL
  804. select max(a) from t1m;
  805. max(a)
  806. NULL
  807. select max(7) from t1m;
  808. max(7)
  809. NULL
  810. select max(7) from DUAL;
  811. max(7)
  812. NULL
  813. explain select max(7) from t2m join t1m;
  814. id select_type table type possible_keys key key_len ref rows Extra
  815. 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
  816. select max(7) from t2m join t1m;
  817. max(7)
  818. NULL
  819. select 1, min(a) from t1m where a=99;
  820. 1 min(a)
  821. 1 NULL
  822. select 1, min(a) from t1m where 1=99;
  823. 1 min(a)
  824. 1 NULL
  825. select 1, min(1) from t1m where a=99;
  826. 1 min(1)
  827. select 1, min(1) from t1m where 1=99;
  828. 1 min(1)
  829. 1 NULL
  830. select 1, max(a) from t1m where a=99;
  831. 1 max(a)
  832. 1 NULL
  833. select 1, max(a) from t1m where 1=99;
  834. 1 max(a)
  835. 1 NULL
  836. select 1, max(1) from t1m where a=99;
  837. 1 max(1)
  838. select 1, max(1) from t1m where 1=99;
  839. 1 max(1)
  840. 1 NULL
  841. select min(a) from t1i;
  842. min(a)
  843. NULL
  844. select min(7) from t1i;
  845. min(7)
  846. NULL
  847. select min(7) from DUAL;
  848. min(7)
  849. NULL
  850. explain select min(7) from t2i join t1i;
  851. id select_type table type possible_keys key key_len ref rows Extra
  852. 1 SIMPLE t2i ALL NULL NULL NULL NULL 1
  853. 1 SIMPLE t1i ALL NULL NULL NULL NULL 1
  854. select min(7) from t2i join t1i;
  855. min(7)
  856. NULL
  857. select max(a) from t1i;
  858. max(a)
  859. NULL
  860. select max(7) from t1i;
  861. max(7)
  862. NULL
  863. select max(7) from DUAL;
  864. max(7)
  865. NULL
  866. explain select max(7) from t2i join t1i;
  867. id select_type table type possible_keys key key_len ref rows Extra
  868. 1 SIMPLE t2i ALL NULL NULL NULL NULL 1
  869. 1 SIMPLE t1i ALL NULL NULL NULL NULL 1
  870. select max(7) from t2i join t1i;
  871. max(7)
  872. NULL
  873. select 1, min(a) from t1i where a=99;
  874. 1 min(a)
  875. 1 NULL
  876. select 1, min(a) from t1i where 1=99;
  877. 1 min(a)
  878. 1 NULL
  879. select 1, min(1) from t1i where a=99;
  880. 1 min(1)
  881. 1 NULL
  882. select 1, min(1) from t1i where 1=99;
  883. 1 min(1)
  884. 1 NULL
  885. select 1, max(a) from t1i where a=99;
  886. 1 max(a)
  887. 1 NULL
  888. select 1, max(a) from t1i where 1=99;
  889. 1 max(a)
  890. 1 NULL
  891. select 1, max(1) from t1i where a=99;
  892. 1 max(1)
  893. 1 NULL
  894. select 1, max(1) from t1i where 1=99;
  895. 1 max(1)
  896. 1 NULL
  897. explain select count(*), min(7), max(7) from t1m, t1i;
  898. id select_type table type possible_keys key key_len ref rows Extra
  899. 1 SIMPLE t1m system NULL NULL NULL NULL 0 const row not found
  900. 1 SIMPLE t1i ALL NULL NULL NULL NULL 1
  901. select count(*), min(7), max(7) from t1m, t1i;
  902. count(*) min(7) max(7)
  903. 0 NULL NULL
  904. explain select count(*), min(7), max(7) from t1m, t2i;
  905. id select_type table type possible_keys key key_len ref rows Extra
  906. 1 SIMPLE t1m system NULL NULL NULL NULL 0 const row not found
  907. 1 SIMPLE t2i ALL NULL NULL NULL NULL 1
  908. select count(*), min(7), max(7) from t1m, t2i;
  909. count(*) min(7) max(7)
  910. 0 NULL NULL
  911. explain select count(*), min(7), max(7) from t2m, t1i;
  912. id select_type table type possible_keys key key_len ref rows Extra
  913. 1 SIMPLE t2m system NULL NULL NULL NULL 1
  914. 1 SIMPLE t1i ALL NULL NULL NULL NULL 1
  915. select count(*), min(7), max(7) from t2m, t1i;
  916. count(*) min(7) max(7)
  917. 0 NULL NULL
  918. drop table t1m, t1i, t2m, t2i;