mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
64e6d7b193
mysql-test/r/group_min_max.result: Test for BUG#12672. mysql-test/t/group_min_max.test: Test for BUG#12672. sql/opt_range.cc: Some storage managers like InnoDB always retrieve the value of the primary key (if any) with any other key. For such storage managers the optimizer marks an index as covering if that index and the primary key contain all query fields. This is good for reading data from an index, but not for lookup. The patch detects such cases and tests whether an index is really a covering index by itself, without the primary key. If yes, then that index can be used for the index skip algorithm of the GROUP_MIN_MAX access method.
2010 lines
75 KiB
Text
2010 lines
75 KiB
Text
drop table if exists t1;
|
|
create table t1 (
|
|
a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' '
|
|
);
|
|
insert into t1 (a1, a2, b, c, d) values
|
|
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
|
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
|
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
|
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
|
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
|
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
|
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
|
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
|
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
|
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
|
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
|
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
|
|
('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
|
|
('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
|
|
('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
|
|
('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4'),
|
|
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
|
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
|
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
|
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
|
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
|
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
|
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
|
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
|
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
|
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
|
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
|
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4'),
|
|
('d','a','a','a411','xy1'),('d','a','a','b411','xy2'),('d','a','a','c411','xy3'),('d','a','a','d411','xy4'),
|
|
('d','a','b','e412','xy1'),('d','a','b','f412','xy2'),('d','a','b','g412','xy3'),('d','a','b','h412','xy4'),
|
|
('d','b','a','i421','xy1'),('d','b','a','j421','xy2'),('d','b','a','k421','xy3'),('d','b','a','l421','xy4'),
|
|
('d','b','b','m422','xy1'),('d','b','b','n422','xy2'),('d','b','b','o422','xy3'),('d','b','b','p422','xy4');
|
|
create index idx_t1_0 on t1 (a1);
|
|
create index idx_t1_1 on t1 (a1,a2,b,c);
|
|
create index idx_t1_2 on t1 (a1,a2,b);
|
|
analyze table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Table is already up to date
|
|
drop table if exists t2;
|
|
create table t2 (
|
|
a1 char(64), a2 char(64) not null, b char(16), c char(16), d char(16), dummy char(64) default ' '
|
|
);
|
|
insert into t2 select * from t1;
|
|
insert into t2 (a1, a2, b, c, d) values
|
|
('a','a',NULL,'a777','xyz'),('a','a',NULL,'a888','xyz'),('a','a',NULL,'a999','xyz'),
|
|
('a','a','a',NULL,'xyz'),
|
|
('a','a','b',NULL,'xyz'),
|
|
('a','b','a',NULL,'xyz'),
|
|
('c','a',NULL,'c777','xyz'),('c','a',NULL,'c888','xyz'),('c','a',NULL,'c999','xyz'),
|
|
('d','b','b',NULL,'xyz'),
|
|
('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),
|
|
('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),
|
|
('a','a',NULL,'a777','xyz'),('a','a',NULL,'a888','xyz'),('a','a',NULL,'a999','xyz'),
|
|
('a','a','a',NULL,'xyz'),
|
|
('a','a','b',NULL,'xyz'),
|
|
('a','b','a',NULL,'xyz'),
|
|
('c','a',NULL,'c777','xyz'),('c','a',NULL,'c888','xyz'),('c','a',NULL,'c999','xyz'),
|
|
('d','b','b',NULL,'xyz'),
|
|
('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),('e','a','a',NULL,'xyz'),
|
|
('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz'),('e','a','b',NULL,'xyz');
|
|
create index idx_t2_0 on t2 (a1);
|
|
create index idx_t2_1 on t2 (a1,a2,b,c);
|
|
create index idx_t2_2 on t2 (a1,a2,b);
|
|
analyze table t2;
|
|
Table Op Msg_type Msg_text
|
|
test.t2 analyze status Table is already up to date
|
|
drop table if exists t3;
|
|
create table t3 (
|
|
a1 char(1), a2 char(1), b char(1), c char(4) not null, d char(3), dummy char(1) default ' '
|
|
);
|
|
insert into t3 (a1, a2, b, c, d) values
|
|
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
|
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
|
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
|
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
|
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
|
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
|
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
|
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
|
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
|
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
|
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
|
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4');
|
|
insert into t3 (a1, a2, b, c, d) values
|
|
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
|
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
|
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
|
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
|
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
|
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
|
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
|
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
|
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
|
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
|
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
|
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4');
|
|
insert into t3 (a1, a2, b, c, d) values
|
|
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
|
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
|
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
|
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
|
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
|
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
|
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
|
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
|
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
|
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
|
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
|
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4');
|
|
insert into t3 (a1, a2, b, c, d) values
|
|
('a','a','a','a111','xy1'),('a','a','a','b111','xy2'),('a','a','a','c111','xy3'),('a','a','a','d111','xy4'),
|
|
('a','a','b','e112','xy1'),('a','a','b','f112','xy2'),('a','a','b','g112','xy3'),('a','a','b','h112','xy4'),
|
|
('a','b','a','i121','xy1'),('a','b','a','j121','xy2'),('a','b','a','k121','xy3'),('a','b','a','l121','xy4'),
|
|
('a','b','b','m122','xy1'),('a','b','b','n122','xy2'),('a','b','b','o122','xy3'),('a','b','b','p122','xy4'),
|
|
('b','a','a','a211','xy1'),('b','a','a','b211','xy2'),('b','a','a','c211','xy3'),('b','a','a','d211','xy4'),
|
|
('b','a','b','e212','xy1'),('b','a','b','f212','xy2'),('b','a','b','g212','xy3'),('b','a','b','h212','xy4'),
|
|
('b','b','a','i221','xy1'),('b','b','a','j221','xy2'),('b','b','a','k221','xy3'),('b','b','a','l221','xy4'),
|
|
('b','b','b','m222','xy1'),('b','b','b','n222','xy2'),('b','b','b','o222','xy3'),('b','b','b','p222','xy4'),
|
|
('c','a','a','a311','xy1'),('c','a','a','b311','xy2'),('c','a','a','c311','xy3'),('c','a','a','d311','xy4'),
|
|
('c','a','b','e312','xy1'),('c','a','b','f312','xy2'),('c','a','b','g312','xy3'),('c','a','b','h312','xy4'),
|
|
('c','b','a','i321','xy1'),('c','b','a','j321','xy2'),('c','b','a','k321','xy3'),('c','b','a','l321','xy4'),
|
|
('c','b','b','m322','xy1'),('c','b','b','n322','xy2'),('c','b','b','o322','xy3'),('c','b','b','p322','xy4');
|
|
create index idx_t3_0 on t3 (a1);
|
|
create index idx_t3_1 on t3 (a1,a2,b,c);
|
|
create index idx_t3_2 on t3 (a1,a2,b);
|
|
analyze table t3;
|
|
Table Op Msg_type Msg_text
|
|
test.t3 analyze status Table is already up to date
|
|
explain select a1, min(a2) from t1 group by a1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 130 NULL 5 Using index for group-by
|
|
explain select a1, max(a2) from t1 group by a1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 65 NULL 5 Using index for group-by
|
|
explain select a1, min(a2), max(a2) from t1 group by a1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 130 NULL 5 Using index for group-by
|
|
explain select a1, a2, b, min(c), max(c) from t1 group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using index for group-by
|
|
explain select a1,a2,b,max(c),min(c) from t1 group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using index for group-by
|
|
explain select a1,a2,b,max(c),min(c) from t2 group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 # NULL # Using index for group-by
|
|
explain select min(a2), a1, max(a2), min(a2), a1 from t1 group by a1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 130 NULL 5 Using index for group-by
|
|
explain select a1, b, min(c), a1, max(c), b, a2, max(c), max(c) from t1 group by a1, a2, b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using index for group-by
|
|
explain select min(a2) from t1 group by a1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 130 NULL 5 Using index for group-by
|
|
explain select a2, min(c), max(c) from t1 group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using index for group-by
|
|
select a1, min(a2) from t1 group by a1;
|
|
a1 min(a2)
|
|
a a
|
|
b a
|
|
c a
|
|
d a
|
|
select a1, max(a2) from t1 group by a1;
|
|
a1 max(a2)
|
|
a b
|
|
b b
|
|
c b
|
|
d b
|
|
select a1, min(a2), max(a2) from t1 group by a1;
|
|
a1 min(a2) max(a2)
|
|
a a b
|
|
b a b
|
|
c a b
|
|
d a b
|
|
select a1, a2, b, min(c), max(c) from t1 group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a a a111 d111
|
|
a a b e112 h112
|
|
a b a i121 l121
|
|
a b b m122 p122
|
|
b a a a211 d211
|
|
b a b e212 h212
|
|
b b a i221 l221
|
|
b b b m222 p222
|
|
c a a a311 d311
|
|
c a b e312 h312
|
|
c b a i321 l321
|
|
c b b m322 p322
|
|
d a a a411 d411
|
|
d a b e412 h412
|
|
d b a i421 l421
|
|
d b b m422 p422
|
|
select a1,a2,b,max(c),min(c) from t1 group by a1,a2,b;
|
|
a1 a2 b max(c) min(c)
|
|
a a a d111 a111
|
|
a a b h112 e112
|
|
a b a l121 i121
|
|
a b b p122 m122
|
|
b a a d211 a211
|
|
b a b h212 e212
|
|
b b a l221 i221
|
|
b b b p222 m222
|
|
c a a d311 a311
|
|
c a b h312 e312
|
|
c b a l321 i321
|
|
c b b p322 m322
|
|
d a a d411 a411
|
|
d a b h412 e412
|
|
d b a l421 i421
|
|
d b b p422 m422
|
|
select a1,a2,b,max(c),min(c) from t2 group by a1,a2,b;
|
|
a1 a2 b max(c) min(c)
|
|
a a NULL a999 a777
|
|
a a a d111 a111
|
|
a a b h112 e112
|
|
a b a l121 i121
|
|
a b b p122 m122
|
|
b a a d211 a211
|
|
b a b h212 e212
|
|
b b a l221 i221
|
|
b b b p222 m222
|
|
c a NULL c999 c777
|
|
c a a d311 a311
|
|
c a b h312 e312
|
|
c b a l321 i321
|
|
c b b p322 m322
|
|
d a a d411 a411
|
|
d a b h412 e412
|
|
d b a l421 i421
|
|
d b b p422 m422
|
|
e a a NULL NULL
|
|
e a b NULL NULL
|
|
select min(a2), a1, max(a2), min(a2), a1 from t1 group by a1;
|
|
min(a2) a1 max(a2) min(a2) a1
|
|
a a b a a
|
|
a b b a b
|
|
a c b a c
|
|
a d b a d
|
|
select a1, b, min(c), a1, max(c), b, a2, max(c), max(c) from t1 group by a1, a2, b;
|
|
a1 b min(c) a1 max(c) b a2 max(c) max(c)
|
|
a a a111 a d111 a a d111 d111
|
|
a b e112 a h112 b a h112 h112
|
|
a a i121 a l121 a b l121 l121
|
|
a b m122 a p122 b b p122 p122
|
|
b a a211 b d211 a a d211 d211
|
|
b b e212 b h212 b a h212 h212
|
|
b a i221 b l221 a b l221 l221
|
|
b b m222 b p222 b b p222 p222
|
|
c a a311 c d311 a a d311 d311
|
|
c b e312 c h312 b a h312 h312
|
|
c a i321 c l321 a b l321 l321
|
|
c b m322 c p322 b b p322 p322
|
|
d a a411 d d411 a a d411 d411
|
|
d b e412 d h412 b a h412 h412
|
|
d a i421 d l421 a b l421 l421
|
|
d b m422 d p422 b b p422 p422
|
|
select min(a2) from t1 group by a1;
|
|
min(a2)
|
|
a
|
|
a
|
|
a
|
|
a
|
|
select a2, min(c), max(c) from t1 group by a1,a2,b;
|
|
a2 min(c) max(c)
|
|
a a111 d111
|
|
a e112 h112
|
|
b i121 l121
|
|
b m122 p122
|
|
a a211 d211
|
|
a e212 h212
|
|
b i221 l221
|
|
b m222 p222
|
|
a a311 d311
|
|
a e312 h312
|
|
b i321 l321
|
|
b m322 p322
|
|
a a411 d411
|
|
a e412 h412
|
|
b i421 l421
|
|
b m422 p422
|
|
explain select a1,a2,b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t1 where a1 >= 'b' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
|
|
explain select a1,a2,b, max(c) from t1 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
|
|
explain select a1, max(c) from t1 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t1 where a1 >= 'c' or a2 < 'b' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b, max(c) from t1 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t1 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
|
|
explain select a1,a2,b, max(c) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
|
|
explain select a1,min(c),max(c) from t1 where a1 >= 'b' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
|
|
explain select a1, max(c) from t1 where a1 in ('a','b','d') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
|
|
explain select a1,a2,b, max(c) from t2 where a1 < 'd' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t2 where a1 < 'd' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t2 where a1 >= 'b' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b, max(c) from t2 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
|
|
explain select a1, max(c) from t2 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t2 where a1 >= 'c' or a2 < 'b' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b, max(c) from t2 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t2 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b, max(c) from t2 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t2 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,min(c),max(c) from t2 where a1 >= 'b' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1, max(c) from t2 where a1 in ('a','b','d') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
|
|
select a1,a2,b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a a a111 d111
|
|
a a b e112 h112
|
|
a b a i121 l121
|
|
a b b m122 p122
|
|
b a a a211 d211
|
|
b a b e212 h212
|
|
b b a i221 l221
|
|
b b b m222 p222
|
|
c a a a311 d311
|
|
c a b e312 h312
|
|
c b a i321 l321
|
|
c b b m322 p322
|
|
select a1,a2,b,min(c),max(c) from t1 where a1 >= 'b' group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
b a a a211 d211
|
|
b a b e212 h212
|
|
b b a i221 l221
|
|
b b b m222 p222
|
|
c a a a311 d311
|
|
c a b e312 h312
|
|
c b a i321 l321
|
|
c b b m322 p322
|
|
d a a a411 d411
|
|
d a b e412 h412
|
|
d b a i421 l421
|
|
d b b m422 p422
|
|
select a1,a2,b, max(c) from t1 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
|
|
a1 a2 b max(c)
|
|
a a a d111
|
|
a a b h112
|
|
a b a l121
|
|
a b b p122
|
|
c a a d311
|
|
c a b h312
|
|
c b a l321
|
|
c b b p322
|
|
d a a d411
|
|
d a b h412
|
|
d b a l421
|
|
d b b p422
|
|
select a1, max(c) from t1 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
|
|
a1 max(c)
|
|
a d111
|
|
a h112
|
|
a l121
|
|
a p122
|
|
c d311
|
|
c h312
|
|
c l321
|
|
c p322
|
|
d d411
|
|
d h412
|
|
d l421
|
|
d p422
|
|
select a1,a2,b,min(c),max(c) from t1 where a1 >= 'c' or a2 < 'b' group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a a a111 d111
|
|
a a b e112 h112
|
|
b a a a211 d211
|
|
b a b e212 h212
|
|
c a a a311 d311
|
|
c a b e312 h312
|
|
c b a i321 l321
|
|
c b b m322 p322
|
|
d a a a411 d411
|
|
d a b e412 h412
|
|
d b a i421 l421
|
|
d b b m422 p422
|
|
select a1,a2,b, max(c) from t1 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
|
|
a1 a2 b max(c)
|
|
b a a d211
|
|
b a b h212
|
|
b b a l221
|
|
b b b p222
|
|
d a a d411
|
|
d a b h412
|
|
d b a l421
|
|
d b b p422
|
|
select a1,a2,b,min(c),max(c) from t1 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
b a a a211 d211
|
|
b a b e212 h212
|
|
b b a i221 l221
|
|
b b b m222 p222
|
|
d a a a411 d411
|
|
d a b e412 h412
|
|
d b a i421 l421
|
|
d b b m422 p422
|
|
select a1,a2,b, max(c) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
|
|
a1 a2 b max(c)
|
|
a b a l121
|
|
a b b p122
|
|
b b a l221
|
|
b b b p222
|
|
c b a l321
|
|
c b b p322
|
|
d b a l421
|
|
d b b p422
|
|
select a1,a2,b,min(c),max(c) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a b a i121 l121
|
|
a b b m122 p122
|
|
b b a i221 l221
|
|
b b b m222 p222
|
|
c b a i321 l321
|
|
c b b m322 p322
|
|
d b a i421 l421
|
|
d b b m422 p422
|
|
select a1,min(c),max(c) from t1 where a1 >= 'b' group by a1,a2,b;
|
|
a1 min(c) max(c)
|
|
b a211 d211
|
|
b e212 h212
|
|
b i221 l221
|
|
b m222 p222
|
|
c a311 d311
|
|
c e312 h312
|
|
c i321 l321
|
|
c m322 p322
|
|
d a411 d411
|
|
d e412 h412
|
|
d i421 l421
|
|
d m422 p422
|
|
select a1, max(c) from t1 where a1 in ('a','b','d') group by a1,a2,b;
|
|
a1 max(c)
|
|
a d111
|
|
a h112
|
|
a l121
|
|
a p122
|
|
b d211
|
|
b h212
|
|
b l221
|
|
b p222
|
|
d d411
|
|
d h412
|
|
d l421
|
|
d p422
|
|
select a1,a2,b, max(c) from t2 where a1 < 'd' group by a1,a2,b;
|
|
a1 a2 b max(c)
|
|
a a NULL a999
|
|
a a a d111
|
|
a a b h112
|
|
a b a l121
|
|
a b b p122
|
|
b a a d211
|
|
b a b h212
|
|
b b a l221
|
|
b b b p222
|
|
c a NULL c999
|
|
c a a d311
|
|
c a b h312
|
|
c b a l321
|
|
c b b p322
|
|
select a1,a2,b,min(c),max(c) from t2 where a1 < 'd' group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a NULL a777 a999
|
|
a a a a111 d111
|
|
a a b e112 h112
|
|
a b a i121 l121
|
|
a b b m122 p122
|
|
b a a a211 d211
|
|
b a b e212 h212
|
|
b b a i221 l221
|
|
b b b m222 p222
|
|
c a NULL c777 c999
|
|
c a a a311 d311
|
|
c a b e312 h312
|
|
c b a i321 l321
|
|
c b b m322 p322
|
|
select a1,a2,b,min(c),max(c) from t2 where a1 >= 'b' group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
b a a a211 d211
|
|
b a b e212 h212
|
|
b b a i221 l221
|
|
b b b m222 p222
|
|
c a NULL c777 c999
|
|
c a a a311 d311
|
|
c a b e312 h312
|
|
c b a i321 l321
|
|
c b b m322 p322
|
|
d a a a411 d411
|
|
d a b e412 h412
|
|
d b a i421 l421
|
|
d b b m422 p422
|
|
e a a NULL NULL
|
|
e a b NULL NULL
|
|
select a1,a2,b, max(c) from t2 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
|
|
a1 a2 b max(c)
|
|
a a NULL a999
|
|
a a a d111
|
|
a a b h112
|
|
a b a l121
|
|
a b b p122
|
|
c a NULL c999
|
|
c a a d311
|
|
c a b h312
|
|
c b a l321
|
|
c b b p322
|
|
d a a d411
|
|
d a b h412
|
|
d b a l421
|
|
d b b p422
|
|
e a a NULL
|
|
e a b NULL
|
|
select a1, max(c) from t2 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
|
|
a1 max(c)
|
|
a a999
|
|
a d111
|
|
a h112
|
|
a l121
|
|
a p122
|
|
c c999
|
|
c d311
|
|
c h312
|
|
c l321
|
|
c p322
|
|
d d411
|
|
d h412
|
|
d l421
|
|
d p422
|
|
e NULL
|
|
e NULL
|
|
select a1,a2,b,min(c),max(c) from t2 where a1 >= 'c' or a2 < 'b' group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a NULL a777 a999
|
|
a a a a111 d111
|
|
a a b e112 h112
|
|
b a a a211 d211
|
|
b a b e212 h212
|
|
c a NULL c777 c999
|
|
c a a a311 d311
|
|
c a b e312 h312
|
|
c b a i321 l321
|
|
c b b m322 p322
|
|
d a a a411 d411
|
|
d a b e412 h412
|
|
d b a i421 l421
|
|
d b b m422 p422
|
|
e a a NULL NULL
|
|
e a b NULL NULL
|
|
select a1,a2,b, max(c) from t2 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
|
|
a1 a2 b max(c)
|
|
b a a d211
|
|
b a b h212
|
|
b b a l221
|
|
b b b p222
|
|
d a a d411
|
|
d a b h412
|
|
d b a l421
|
|
d b b p422
|
|
select a1,a2,b,min(c),max(c) from t2 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
b a a a211 d211
|
|
b a b e212 h212
|
|
b b a i221 l221
|
|
b b b m222 p222
|
|
d a a a411 d411
|
|
d a b e412 h412
|
|
d b a i421 l421
|
|
d b b m422 p422
|
|
select a1,a2,b, max(c) from t2 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
|
|
a1 a2 b max(c)
|
|
a b a l121
|
|
a b b p122
|
|
b b a l221
|
|
b b b p222
|
|
c b a l321
|
|
c b b p322
|
|
d b a l421
|
|
d b b p422
|
|
select a1,a2,b,min(c),max(c) from t2 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a b a i121 l121
|
|
a b b m122 p122
|
|
b b a i221 l221
|
|
b b b m222 p222
|
|
c b a i321 l321
|
|
c b b m322 p322
|
|
d b a i421 l421
|
|
d b b m422 p422
|
|
select a1,min(c),max(c) from t2 where a1 >= 'b' group by a1,a2,b;
|
|
a1 min(c) max(c)
|
|
b a211 d211
|
|
b e212 h212
|
|
b i221 l221
|
|
b m222 p222
|
|
c c777 c999
|
|
c a311 d311
|
|
c e312 h312
|
|
c i321 l321
|
|
c m322 p322
|
|
d a411 d411
|
|
d e412 h412
|
|
d i421 l421
|
|
d m422 p422
|
|
e NULL NULL
|
|
e NULL NULL
|
|
select a1, max(c) from t2 where a1 in ('a','b','d') group by a1,a2,b;
|
|
a1 max(c)
|
|
a a999
|
|
a d111
|
|
a h112
|
|
a l121
|
|
a p122
|
|
b d211
|
|
b h212
|
|
b l221
|
|
b p222
|
|
d d411
|
|
d h412
|
|
d l421
|
|
d p422
|
|
explain select a1,a2,b,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 5 Using where; Using index for group-by
|
|
explain select a1,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 5 Using where; Using index for group-by
|
|
explain select a1,a2,b, max(c) from t1 where (b = 'b') group by a1,a2;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 9 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t1 where (b = 'b') group by a1,a2;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 9 Using where; Using index for group-by
|
|
explain select a1,a2, max(c) from t1 where (b = 'b') group by a1,a2;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 9 Using where; Using index for group-by
|
|
explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') group by a1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 163 NULL 5 Using where; Using index for group-by
|
|
explain select a1,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') group by a1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 163 NULL 5 Using where; Using index for group-by
|
|
explain select a1,a2,b, max(c) from t2 where (b = 'b') group by a1,a2;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 146 NULL 10 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t2 where (b = 'b') group by a1,a2;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 163 NULL 10 Using where; Using index for group-by
|
|
explain select a1,a2, max(c) from t2 where (b = 'b') group by a1,a2;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 146 NULL 10 Using where; Using index for group-by
|
|
explain select a1,a2,b,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b') group by a1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t3 range NULL idx_t3_1 6 NULL 4 Using where; Using index for group-by
|
|
explain select a1,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b') group by a1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t3 range NULL idx_t3_1 6 NULL 4 Using where; Using index for group-by
|
|
select a1,a2,b,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1;
|
|
a1 a2 b max(c) min(c)
|
|
a a b h112 e112
|
|
b a b h212 e212
|
|
c a b h312 e312
|
|
d a b h412 e412
|
|
select a1,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1;
|
|
a1 max(c) min(c)
|
|
a h112 e112
|
|
b h212 e212
|
|
c h312 e312
|
|
d h412 e412
|
|
select a1,a2,b, max(c) from t1 where (b = 'b') group by a1,a2;
|
|
a1 a2 b max(c)
|
|
a a b h112
|
|
a b b p122
|
|
b a b h212
|
|
b b b p222
|
|
c a b h312
|
|
c b b p322
|
|
d a b h412
|
|
d b b p422
|
|
select a1,a2,b,min(c),max(c) from t1 where (b = 'b') group by a1,a2;
|
|
a1 a2 b min(c) max(c)
|
|
a a b e112 h112
|
|
a b b m122 p122
|
|
b a b e212 h212
|
|
b b b m222 p222
|
|
c a b e312 h312
|
|
c b b m322 p322
|
|
d a b e412 h412
|
|
d b b m422 p422
|
|
select a1,a2, max(c) from t1 where (b = 'b') group by a1,a2;
|
|
a1 a2 max(c)
|
|
a a h112
|
|
a b p122
|
|
b a h212
|
|
b b p222
|
|
c a h312
|
|
c b p322
|
|
d a h412
|
|
d b p422
|
|
select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') group by a1;
|
|
a1 a2 b max(c) min(c)
|
|
a a b h112 e112
|
|
b a b h212 e212
|
|
c a b h312 e312
|
|
d a b h412 e412
|
|
e a b NULL NULL
|
|
select a1,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') group by a1;
|
|
a1 max(c) min(c)
|
|
a h112 e112
|
|
b h212 e212
|
|
c h312 e312
|
|
d h412 e412
|
|
e NULL NULL
|
|
select a1,a2,b, max(c) from t2 where (b = 'b') group by a1,a2;
|
|
a1 a2 b max(c)
|
|
a a b h112
|
|
a b b p122
|
|
b a b h212
|
|
b b b p222
|
|
c a b h312
|
|
c b b p322
|
|
d a b h412
|
|
d b b p422
|
|
e a b NULL
|
|
select a1,a2,b,min(c),max(c) from t2 where (b = 'b') group by a1,a2;
|
|
a1 a2 b min(c) max(c)
|
|
a a b e112 h112
|
|
a b b m122 p122
|
|
b a b e212 h212
|
|
b b b m222 p222
|
|
c a b e312 h312
|
|
c b b m322 p322
|
|
d a b e412 h412
|
|
d b b m422 p422
|
|
e a b NULL NULL
|
|
select a1,a2, max(c) from t2 where (b = 'b') group by a1,a2;
|
|
a1 a2 max(c)
|
|
a a h112
|
|
a b p122
|
|
b a h212
|
|
b b p222
|
|
c a h312
|
|
c b p322
|
|
d a h412
|
|
d b p422
|
|
e a NULL
|
|
select a1,a2,b,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b') group by a1;
|
|
a1 a2 b max(c) min(c)
|
|
a a b h112 e112
|
|
b a b h212 e212
|
|
c a b h312 e312
|
|
select a1,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b') group by a1;
|
|
a1 max(c) min(c)
|
|
a h112 e112
|
|
b h212 e212
|
|
c h312 e312
|
|
explain select a1,a2,b,min(c) from t2 where (a2 = 'a') and b is NULL group by a1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 163 NULL 5 Using where; Using index for group-by
|
|
explain select a1,a2,b,max(c) from t2 where (a2 = 'a') and b is NULL group by a1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 146 NULL 5 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c) from t2 where b is NULL group by a1,a2;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 163 NULL 10 Using where; Using index for group-by
|
|
explain select a1,a2,b,max(c) from t2 where b is NULL group by a1,a2;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 146 NULL 10 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t2 where b is NULL group by a1,a2;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 163 NULL 10 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t2 where b is NULL group by a1,a2;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 163 NULL 10 Using where; Using index for group-by
|
|
select a1,a2,b,min(c) from t2 where (a2 = 'a') and b is NULL group by a1;
|
|
a1 a2 b min(c)
|
|
a a NULL a777
|
|
c a NULL c777
|
|
select a1,a2,b,max(c) from t2 where (a2 = 'a') and b is NULL group by a1;
|
|
a1 a2 b max(c)
|
|
a a NULL a999
|
|
c a NULL c999
|
|
select a1,a2,b,min(c) from t2 where b is NULL group by a1,a2;
|
|
a1 a2 b min(c)
|
|
a a NULL a777
|
|
c a NULL c777
|
|
select a1,a2,b,max(c) from t2 where b is NULL group by a1,a2;
|
|
a1 a2 b max(c)
|
|
a a NULL a999
|
|
c a NULL c999
|
|
select a1,a2,b,min(c),max(c) from t2 where b is NULL group by a1,a2;
|
|
a1 a2 b min(c) max(c)
|
|
a a NULL a777 a999
|
|
c a NULL c777 c999
|
|
select a1,a2,b,min(c),max(c) from t2 where b is NULL group by a1,a2;
|
|
a1 a2 b min(c) max(c)
|
|
a a NULL a777 a999
|
|
c a NULL c777 c999
|
|
explain select a1,a2,b, max(c) from t1 where (c > 'b1') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t1 where (c > 'b1') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b, max(c) from t1 where (c > 'f123') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t1 where (c > 'f123') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b, max(c) from t1 where (c < 'a0') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t1 where (c < 'a0') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b, max(c) from t1 where (c < 'k321') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t1 where (c < 'k321') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b, max(c) from t1 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t1 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b, max(c) from t1 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t1 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t1 where (c > 'b111') and (c <= 'g112') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t1 where (c < 'c5') or (c = 'g412') or (c = 'k421') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t1 where ((c > 'b111') and (c <= 'g112')) or ((c > 'd000') and (c <= 'i110')) group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t1 where (c between 'b111' and 'g112') or (c between 'd000' and 'i110') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b, max(c) from t2 where (c > 'b1') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t2 where (c > 'b1') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b, max(c) from t2 where (c > 'f123') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t2 where (c > 'f123') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b, max(c) from t2 where (c < 'a0') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t2 where (c < 'a0') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b, max(c) from t2 where (c < 'k321') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t2 where (c < 'k321') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b, max(c) from t2 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t2 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b, max(c) from t2 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t2 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t2 where (c > 'b111') and (c <= 'g112') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t2 where (c < 'c5') or (c = 'g412') or (c = 'k421') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t2 where ((c > 'b111') and (c <= 'g112')) or ((c > 'd000') and (c <= 'i110')) group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
select a1,a2,b, max(c) from t1 where (c > 'b1') group by a1,a2,b;
|
|
a1 a2 b max(c)
|
|
a a a d111
|
|
a a b h112
|
|
a b a l121
|
|
a b b p122
|
|
b a a d211
|
|
b a b h212
|
|
b b a l221
|
|
b b b p222
|
|
c a a d311
|
|
c a b h312
|
|
c b a l321
|
|
c b b p322
|
|
d a a d411
|
|
d a b h412
|
|
d b a l421
|
|
d b b p422
|
|
select a1,a2,b,min(c),max(c) from t1 where (c > 'b1') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a a b111 d111
|
|
a a b e112 h112
|
|
a b a i121 l121
|
|
a b b m122 p122
|
|
b a a b211 d211
|
|
b a b e212 h212
|
|
b b a i221 l221
|
|
b b b m222 p222
|
|
c a a b311 d311
|
|
c a b e312 h312
|
|
c b a i321 l321
|
|
c b b m322 p322
|
|
d a a b411 d411
|
|
d a b e412 h412
|
|
d b a i421 l421
|
|
d b b m422 p422
|
|
select a1,a2,b, max(c) from t1 where (c > 'f123') group by a1,a2,b;
|
|
a1 a2 b max(c)
|
|
a a b h112
|
|
a b a l121
|
|
a b b p122
|
|
b a b h212
|
|
b b a l221
|
|
b b b p222
|
|
c a b h312
|
|
c b a l321
|
|
c b b p322
|
|
d a b h412
|
|
d b a l421
|
|
d b b p422
|
|
select a1,a2,b,min(c),max(c) from t1 where (c > 'f123') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a b g112 h112
|
|
a b a i121 l121
|
|
a b b m122 p122
|
|
b a b f212 h212
|
|
b b a i221 l221
|
|
b b b m222 p222
|
|
c a b f312 h312
|
|
c b a i321 l321
|
|
c b b m322 p322
|
|
d a b f412 h412
|
|
d b a i421 l421
|
|
d b b m422 p422
|
|
select a1,a2,b, max(c) from t1 where (c < 'a0') group by a1,a2,b;
|
|
a1 a2 b max(c)
|
|
select a1,a2,b,min(c),max(c) from t1 where (c < 'a0') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
select a1,a2,b, max(c) from t1 where (c < 'k321') group by a1,a2,b;
|
|
a1 a2 b max(c)
|
|
a a a d111
|
|
a a b h112
|
|
a b a k121
|
|
b a a d211
|
|
b a b h212
|
|
b b a k221
|
|
c a a d311
|
|
c a b h312
|
|
c b a j321
|
|
d a a d411
|
|
d a b h412
|
|
d b a j421
|
|
select a1,a2,b,min(c),max(c) from t1 where (c < 'k321') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a a a111 d111
|
|
a a b e112 h112
|
|
a b a i121 k121
|
|
b a a a211 d211
|
|
b a b e212 h212
|
|
b b a i221 k221
|
|
c a a a311 d311
|
|
c a b e312 h312
|
|
c b a i321 j321
|
|
d a a a411 d411
|
|
d a b e412 h412
|
|
d b a i421 j421
|
|
select a1,a2,b, max(c) from t1 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
|
|
a1 a2 b max(c)
|
|
a a a d111
|
|
a a b h112
|
|
a b a l121
|
|
a b b p122
|
|
b a a d211
|
|
b a b h212
|
|
b b a l221
|
|
b b b p222
|
|
c a a d311
|
|
c a b h312
|
|
c b a l321
|
|
c b b p322
|
|
d a a d411
|
|
d a b h412
|
|
d b a l421
|
|
d b b p422
|
|
select a1,a2,b,min(c),max(c) from t1 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a a b111 d111
|
|
a a b e112 h112
|
|
a b a i121 l121
|
|
a b b m122 p122
|
|
b a a b211 d211
|
|
b a b e212 h212
|
|
b b a i221 l221
|
|
b b b m222 p222
|
|
c a a b311 d311
|
|
c a b e312 h312
|
|
c b a i321 l321
|
|
c b b m322 p322
|
|
d a a b411 d411
|
|
d a b e412 h412
|
|
d b a i421 l421
|
|
d b b m422 p422
|
|
select a1,a2,b, max(c) from t1 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
|
|
a1 a2 b max(c)
|
|
a a a d111
|
|
a a b h112
|
|
a b a l121
|
|
a b b p122
|
|
b a a d211
|
|
b a b h212
|
|
b b a l221
|
|
b b b p222
|
|
c a a d311
|
|
c a b h312
|
|
c b a l321
|
|
c b b p322
|
|
d a a d411
|
|
d a b h412
|
|
d b a l421
|
|
d b b p422
|
|
select a1,a2,b,min(c),max(c) from t1 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a a a111 d111
|
|
a a b e112 h112
|
|
a b a i121 l121
|
|
a b b m122 p122
|
|
b a a a211 d211
|
|
b a b e212 h212
|
|
b b a i221 l221
|
|
b b b m222 p222
|
|
c a a a311 d311
|
|
c a b e312 h312
|
|
c b a i321 l321
|
|
c b b m322 p322
|
|
d a a a411 d411
|
|
d a b e412 h412
|
|
d b a i421 l421
|
|
d b b m422 p422
|
|
select a1,a2,b,min(c),max(c) from t1 where (c > 'b111') and (c <= 'g112') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a a c111 d111
|
|
a a b e112 g112
|
|
b a a b211 d211
|
|
b a b e212 f212
|
|
c a a b311 d311
|
|
c a b e312 f312
|
|
d a a b411 d411
|
|
d a b e412 f412
|
|
select a1,a2,b,min(c),max(c) from t1 where (c < 'c5') or (c = 'g412') or (c = 'k421') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a a a111 c111
|
|
b a a a211 c211
|
|
c a a a311 c311
|
|
d a a a411 c411
|
|
d a b g412 g412
|
|
d b a k421 k421
|
|
select a1,a2,b,min(c),max(c) from t1 where ((c > 'b111') and (c <= 'g112')) or ((c > 'd000') and (c <= 'i110')) group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a a c111 d111
|
|
a a b e112 h112
|
|
b a a b211 d211
|
|
b a b e212 h212
|
|
c a a b311 d311
|
|
c a b e312 h312
|
|
d a a b411 d411
|
|
d a b e412 h412
|
|
select a1,a2,b,min(c),max(c) from t1 where (c between 'b111' and 'g112') or (c between 'd000' and 'i110') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a a b111 d111
|
|
a a b e112 h112
|
|
b a a b211 d211
|
|
b a b e212 h212
|
|
c a a b311 d311
|
|
c a b e312 h312
|
|
d a a b411 d411
|
|
d a b e412 h412
|
|
select a1,a2,b, max(c) from t2 where (c > 'b1') group by a1,a2,b;
|
|
a1 a2 b max(c)
|
|
a a a d111
|
|
a a b h112
|
|
a b a l121
|
|
a b b p122
|
|
b a a d211
|
|
b a b h212
|
|
b b a l221
|
|
b b b p222
|
|
c a NULL c999
|
|
c a a d311
|
|
c a b h312
|
|
c b a l321
|
|
c b b p322
|
|
d a a d411
|
|
d a b h412
|
|
d b a l421
|
|
d b b p422
|
|
select a1,a2,b,min(c),max(c) from t2 where (c > 'b1') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a a b111 d111
|
|
a a b e112 h112
|
|
a b a i121 l121
|
|
a b b m122 p122
|
|
b a a b211 d211
|
|
b a b e212 h212
|
|
b b a i221 l221
|
|
b b b m222 p222
|
|
c a NULL c777 c999
|
|
c a a b311 d311
|
|
c a b e312 h312
|
|
c b a i321 l321
|
|
c b b m322 p322
|
|
d a a b411 d411
|
|
d a b e412 h412
|
|
d b a i421 l421
|
|
d b b m422 p422
|
|
select a1,a2,b, max(c) from t2 where (c > 'f123') group by a1,a2,b;
|
|
a1 a2 b max(c)
|
|
a a b h112
|
|
a b a l121
|
|
a b b p122
|
|
b a b h212
|
|
b b a l221
|
|
b b b p222
|
|
c a b h312
|
|
c b a l321
|
|
c b b p322
|
|
d a b h412
|
|
d b a l421
|
|
d b b p422
|
|
select a1,a2,b,min(c),max(c) from t2 where (c > 'f123') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a b g112 h112
|
|
a b a i121 l121
|
|
a b b m122 p122
|
|
b a b f212 h212
|
|
b b a i221 l221
|
|
b b b m222 p222
|
|
c a b f312 h312
|
|
c b a i321 l321
|
|
c b b m322 p322
|
|
d a b f412 h412
|
|
d b a i421 l421
|
|
d b b m422 p422
|
|
select a1,a2,b, max(c) from t2 where (c < 'a0') group by a1,a2,b;
|
|
a1 a2 b max(c)
|
|
select a1,a2,b,min(c),max(c) from t2 where (c < 'a0') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
select a1,a2,b, max(c) from t2 where (c < 'k321') group by a1,a2,b;
|
|
a1 a2 b max(c)
|
|
a a NULL a999
|
|
a a a d111
|
|
a a b h112
|
|
a b a k121
|
|
b a a d211
|
|
b a b h212
|
|
b b a k221
|
|
c a NULL c999
|
|
c a a d311
|
|
c a b h312
|
|
c b a j321
|
|
d a a d411
|
|
d a b h412
|
|
d b a j421
|
|
select a1,a2,b,min(c),max(c) from t2 where (c < 'k321') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a NULL a777 a999
|
|
a a a a111 d111
|
|
a a b e112 h112
|
|
a b a i121 k121
|
|
b a a a211 d211
|
|
b a b e212 h212
|
|
b b a i221 k221
|
|
c a NULL c777 c999
|
|
c a a a311 d311
|
|
c a b e312 h312
|
|
c b a i321 j321
|
|
d a a a411 d411
|
|
d a b e412 h412
|
|
d b a i421 j421
|
|
select a1,a2,b, max(c) from t2 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
|
|
a1 a2 b max(c)
|
|
a a a d111
|
|
a a b h112
|
|
a b a l121
|
|
a b b p122
|
|
b a a d211
|
|
b a b h212
|
|
b b a l221
|
|
b b b p222
|
|
c a NULL c999
|
|
c a a d311
|
|
c a b h312
|
|
c b a l321
|
|
c b b p322
|
|
d a a d411
|
|
d a b h412
|
|
d b a l421
|
|
d b b p422
|
|
select a1,a2,b,min(c),max(c) from t2 where (c < 'a0') or (c > 'b1') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a a b111 d111
|
|
a a b e112 h112
|
|
a b a i121 l121
|
|
a b b m122 p122
|
|
b a a b211 d211
|
|
b a b e212 h212
|
|
b b a i221 l221
|
|
b b b m222 p222
|
|
c a NULL c777 c999
|
|
c a a b311 d311
|
|
c a b e312 h312
|
|
c b a i321 l321
|
|
c b b m322 p322
|
|
d a a b411 d411
|
|
d a b e412 h412
|
|
d b a i421 l421
|
|
d b b m422 p422
|
|
select a1,a2,b, max(c) from t2 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
|
|
a1 a2 b max(c)
|
|
a a NULL a999
|
|
a a a d111
|
|
a a b h112
|
|
a b a l121
|
|
a b b p122
|
|
b a a d211
|
|
b a b h212
|
|
b b a l221
|
|
b b b p222
|
|
c a NULL c999
|
|
c a a d311
|
|
c a b h312
|
|
c b a l321
|
|
c b b p322
|
|
d a a d411
|
|
d a b h412
|
|
d b a l421
|
|
d b b p422
|
|
select a1,a2,b,min(c),max(c) from t2 where (c > 'b1') or (c <= 'g1') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a NULL a777 a999
|
|
a a a a111 d111
|
|
a a b e112 h112
|
|
a b a i121 l121
|
|
a b b m122 p122
|
|
b a a a211 d211
|
|
b a b e212 h212
|
|
b b a i221 l221
|
|
b b b m222 p222
|
|
c a NULL c777 c999
|
|
c a a a311 d311
|
|
c a b e312 h312
|
|
c b a i321 l321
|
|
c b b m322 p322
|
|
d a a a411 d411
|
|
d a b e412 h412
|
|
d b a i421 l421
|
|
d b b m422 p422
|
|
select a1,a2,b,min(c),max(c) from t2 where (c > 'b111') and (c <= 'g112') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a a c111 d111
|
|
a a b e112 g112
|
|
b a a b211 d211
|
|
b a b e212 f212
|
|
c a NULL c777 c999
|
|
c a a b311 d311
|
|
c a b e312 f312
|
|
d a a b411 d411
|
|
d a b e412 f412
|
|
select a1,a2,b,min(c),max(c) from t2 where (c < 'c5') or (c = 'g412') or (c = 'k421') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a NULL a777 a999
|
|
a a a a111 c111
|
|
b a a a211 c211
|
|
c a a a311 c311
|
|
d a a a411 c411
|
|
d a b g412 g412
|
|
d b a k421 k421
|
|
select a1,a2,b,min(c),max(c) from t2 where ((c > 'b111') and (c <= 'g112')) or ((c > 'd000') and (c <= 'i110')) group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a a c111 d111
|
|
a a b e112 h112
|
|
b a a b211 d211
|
|
b a b e212 h212
|
|
c a NULL c777 c999
|
|
c a a b311 d311
|
|
c a b e312 h312
|
|
d a a b411 d411
|
|
d a b e412 h412
|
|
explain select a1,a2,b,min(c),max(c) from t1
|
|
where exists ( select * from t2 where t2.c = t1.c )
|
|
group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 PRIMARY t1 index NULL idx_t1_1 163 NULL 128 Using where; Using index
|
|
2 DEPENDENT SUBQUERY t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
|
|
explain select a1,a2,b,min(c),max(c) from t1
|
|
where exists ( select * from t2 where t2.c > 'b1' )
|
|
group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 PRIMARY t1 range NULL idx_t1_1 147 NULL 17 Using index for group-by
|
|
2 SUBQUERY t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
|
|
explain select a1,a2,b,min(c),max(c) from t1 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t1 where (a1 >= 'c' or a2 < 'b') and (c > 'b111') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t1 where (a2 >= 'b') and (b = 'a') and (c > 'b111') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c) from t1 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c < 'h112') or (c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122')) group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 14 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c) from t1 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122') or (c < 'h112') or (c = 'c111')) group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 14 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c) from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c) from t1 where (ord(a1) > 97) and (ord(a2) + ord(a1) > 194) and (b = 'c') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t2 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t2 where (a1 >= 'c' or a2 < 'b') and (c > 'b111') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c),max(c) from t2 where (a2 >= 'b') and (b = 'a') and (c > 'b111') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c) from t2 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c < 'h112') or (c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122')) group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c) from t2 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122') or (c < 'h112') or (c = 'c111')) group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,min(c) from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by
|
|
select a1,a2,b,min(c),max(c) from t1 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a b e112 h112
|
|
b a b e212 h212
|
|
c a b e312 h312
|
|
c b b m322 p322
|
|
d a b e412 h412
|
|
d b b m422 p422
|
|
select a1,a2,b,min(c),max(c) from t1 where (a1 >= 'c' or a2 < 'b') and (c > 'b111') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a a c111 d111
|
|
a a b e112 h112
|
|
b a a b211 d211
|
|
b a b e212 h212
|
|
c a a b311 d311
|
|
c a b e312 h312
|
|
c b a i321 l321
|
|
c b b m322 p322
|
|
d a a b411 d411
|
|
d a b e412 h412
|
|
d b a i421 l421
|
|
d b b m422 p422
|
|
select a1,a2,b,min(c),max(c) from t1 where (a2 >= 'b') and (b = 'a') and (c > 'b111') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a b a i121 l121
|
|
b b a i221 l221
|
|
c b a i321 l321
|
|
d b a i421 l421
|
|
select a1,a2,b,min(c) from t1 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c < 'h112') or (c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122')) group by a1,a2,b;
|
|
a1 a2 b min(c)
|
|
b b a k221
|
|
c b a k321
|
|
d b a k421
|
|
select a1,a2,b,min(c) from t1 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122') or (c < 'h112') or (c = 'c111')) group by a1,a2,b;
|
|
a1 a2 b min(c)
|
|
b b a k221
|
|
c b a k321
|
|
d b a k421
|
|
select a1,a2,b,min(c) from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
|
|
a1 a2 b min(c)
|
|
select a1,a2,b,min(c) from t1 where (ord(a1) > 97) and (ord(a2) + ord(a1) > 194) and (b = 'c') group by a1,a2,b;
|
|
a1 a2 b min(c)
|
|
select a1,a2,b,min(c),max(c) from t2 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a b e112 h112
|
|
b a b e212 h212
|
|
c a b e312 h312
|
|
c b b m322 p322
|
|
d a b e412 h412
|
|
d b b m422 p422
|
|
e a b NULL NULL
|
|
select a1,a2,b,min(c),max(c) from t2 where (a1 >= 'c' or a2 < 'b') and (c > 'b111') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a a a c111 d111
|
|
a a b e112 h112
|
|
b a a b211 d211
|
|
b a b e212 h212
|
|
c a NULL c777 c999
|
|
c a a b311 d311
|
|
c a b e312 h312
|
|
c b a i321 l321
|
|
c b b m322 p322
|
|
d a a b411 d411
|
|
d a b e412 h412
|
|
d b a i421 l421
|
|
d b b m422 p422
|
|
select a1,a2,b,min(c),max(c) from t2 where (a2 >= 'b') and (b = 'a') and (c > 'b111') group by a1,a2,b;
|
|
a1 a2 b min(c) max(c)
|
|
a b a i121 l121
|
|
b b a i221 l221
|
|
c b a i321 l321
|
|
d b a i421 l421
|
|
select a1,a2,b,min(c) from t2 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c < 'h112') or (c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122')) group by a1,a2,b;
|
|
a1 a2 b min(c)
|
|
b b a k221
|
|
c b a k321
|
|
d b a k421
|
|
select a1,a2,b,min(c) from t2 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122') or (c < 'h112') or (c = 'c111')) group by a1,a2,b;
|
|
a1 a2 b min(c)
|
|
b b a k221
|
|
c b a k321
|
|
d b a k421
|
|
select a1,a2,b,min(c) from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
|
|
a1 a2 b min(c)
|
|
explain select a1,a2,b from t1 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
|
|
explain select a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
|
|
explain select a1,a2,b from t2 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by
|
|
explain select a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 index NULL idx_t2_1 163 NULL # Using where; Using index
|
|
explain select a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
|
|
select a1,a2,b from t1 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
|
|
a1 a2 b
|
|
a a b
|
|
b a b
|
|
c a b
|
|
c b b
|
|
d a b
|
|
d b b
|
|
select a1,a2,b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
|
|
a1 a2 b
|
|
a b a
|
|
b b a
|
|
c b a
|
|
d b a
|
|
select a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
|
|
a1 a2 b c
|
|
a b a i121
|
|
select a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
|
|
a1 a2 b
|
|
select a1,a2,b from t2 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b;
|
|
a1 a2 b
|
|
a a b
|
|
b a b
|
|
c a b
|
|
c b b
|
|
d a b
|
|
d b b
|
|
e a b
|
|
select a1,a2,b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
|
|
a1 a2 b
|
|
a b a
|
|
b b a
|
|
c b a
|
|
d b a
|
|
select a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
|
|
a1 a2 b c
|
|
a b a i121
|
|
select a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
|
|
a1 a2 b
|
|
explain select distinct a1,a2,b from t1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using index for group-by
|
|
explain select distinct a1,a2,b from t1 where (a2 >= 'b') and (b = 'a');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
|
|
explain select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index NULL idx_t1_1 163 NULL 128 Using where; Using index
|
|
explain select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
|
|
explain select distinct b from t1 where (a2 >= 'b') and (b = 'a');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index NULL idx_t1_2 147 NULL 128 Using where; Using index
|
|
explain select distinct a1,a2,b from t2;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using index for group-by
|
|
explain select distinct a1,a2,b from t2 where (a2 >= 'b') and (b = 'a');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by
|
|
explain select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
|
|
explain select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
|
|
explain select distinct b from t2 where (a2 >= 'b') and (b = 'a');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 index NULL idx_t2_2 146 NULL 164 Using where; Using index
|
|
select distinct a1,a2,b from t1;
|
|
a1 a2 b
|
|
a a a
|
|
a a b
|
|
a b a
|
|
a b b
|
|
b a a
|
|
b a b
|
|
b b a
|
|
b b b
|
|
c a a
|
|
c a b
|
|
c b a
|
|
c b b
|
|
d a a
|
|
d a b
|
|
d b a
|
|
d b b
|
|
select distinct a1,a2,b from t1 where (a2 >= 'b') and (b = 'a');
|
|
a1 a2 b
|
|
a b a
|
|
b b a
|
|
c b a
|
|
d b a
|
|
select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
|
|
a1 a2 b c
|
|
a b a i121
|
|
select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
|
|
a1 a2 b
|
|
select distinct b from t1 where (a2 >= 'b') and (b = 'a');
|
|
b
|
|
a
|
|
select distinct a1,a2,b from t2;
|
|
a1 a2 b
|
|
a a NULL
|
|
a a a
|
|
a a b
|
|
a b a
|
|
a b b
|
|
b a a
|
|
b a b
|
|
b b a
|
|
b b b
|
|
c a NULL
|
|
c a a
|
|
c a b
|
|
c b a
|
|
c b b
|
|
d a a
|
|
d a b
|
|
d b a
|
|
d b b
|
|
e a a
|
|
e a b
|
|
select distinct a1,a2,b from t2 where (a2 >= 'b') and (b = 'a');
|
|
a1 a2 b
|
|
a b a
|
|
b b a
|
|
c b a
|
|
d b a
|
|
select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
|
|
a1 a2 b c
|
|
a b a i121
|
|
select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
|
|
a1 a2 b
|
|
select distinct b from t2 where (a2 >= 'b') and (b = 'a');
|
|
b
|
|
a
|
|
select distinct t_00.a1
|
|
from t1 t_00
|
|
where exists ( select * from t2 where a1 = t_00.a1 );
|
|
a1
|
|
a
|
|
b
|
|
c
|
|
d
|
|
select distinct a1,a1 from t1;
|
|
a1 a1
|
|
a a
|
|
b b
|
|
c c
|
|
d d
|
|
select distinct a2,a1,a2,a1 from t1;
|
|
a2 a1 a2 a1
|
|
a a a a
|
|
b a b a
|
|
a b a b
|
|
b b b b
|
|
a c a c
|
|
b c b c
|
|
a d a d
|
|
b d b d
|
|
select distinct t1.a1,t2.a1 from t1,t2;
|
|
a1 a1
|
|
a a
|
|
b a
|
|
c a
|
|
d a
|
|
a b
|
|
b b
|
|
c b
|
|
d b
|
|
a c
|
|
b c
|
|
c c
|
|
d c
|
|
a d
|
|
b d
|
|
c d
|
|
d d
|
|
a e
|
|
b e
|
|
c e
|
|
d e
|
|
explain select distinct a1,a2,b from t1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using index for group-by
|
|
explain select distinct a1,a2,b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by
|
|
explain select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 163 NULL 17 Using where; Using index for group-by
|
|
explain select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
|
|
explain select distinct b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 17 Using where; Using index for group-by; Using temporary; Using filesort
|
|
explain select distinct a1,a2,b from t2;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using index for group-by
|
|
explain select distinct a1,a2,b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by
|
|
explain select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 index NULL idx_t2_1 163 NULL # Using where; Using index
|
|
explain select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by
|
|
explain select distinct b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by; Using temporary; Using filesort
|
|
select distinct a1,a2,b from t1;
|
|
a1 a2 b
|
|
a a a
|
|
a a b
|
|
a b a
|
|
a b b
|
|
b a a
|
|
b a b
|
|
b b a
|
|
b b b
|
|
c a a
|
|
c a b
|
|
c b a
|
|
c b b
|
|
d a a
|
|
d a b
|
|
d b a
|
|
d b b
|
|
select distinct a1,a2,b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
|
|
a1 a2 b
|
|
a b a
|
|
b b a
|
|
c b a
|
|
d b a
|
|
select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
|
|
a1 a2 b c
|
|
a b a i121
|
|
select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
|
|
a1 a2 b
|
|
select distinct b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
|
|
b
|
|
a
|
|
select distinct a1,a2,b from t2;
|
|
a1 a2 b
|
|
a a NULL
|
|
a a a
|
|
a a b
|
|
a b a
|
|
a b b
|
|
b a a
|
|
b a b
|
|
b b a
|
|
b b b
|
|
c a NULL
|
|
c a a
|
|
c a b
|
|
c b a
|
|
c b b
|
|
d a a
|
|
d a b
|
|
d b a
|
|
d b b
|
|
e a a
|
|
e a b
|
|
select distinct a1,a2,b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
|
|
a1 a2 b
|
|
a b a
|
|
b b a
|
|
c b a
|
|
d b a
|
|
select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b;
|
|
a1 a2 b c
|
|
a b a i121
|
|
select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
|
|
a1 a2 b
|
|
select distinct b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b;
|
|
b
|
|
a
|
|
explain select count(distinct a1,a2,b) from t1 where (a2 >= 'b') and (b = 'a');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index NULL idx_t1_2 147 NULL 128 Using where; Using index
|
|
explain select count(distinct a1,a2,b,c) from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index NULL idx_t1_1 163 NULL 128 Using where; Using index
|
|
explain select count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_2 147 NULL 128 Using where; Using index
|
|
explain select count(distinct b) from t1 where (a2 >= 'b') and (b = 'a');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index NULL idx_t1_2 147 NULL 128 Using where; Using index
|
|
explain select ord(a1) + count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a');
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_2 147 NULL 128 Using where; Using index
|
|
select count(distinct a1,a2,b) from t1 where (a2 >= 'b') and (b = 'a');
|
|
count(distinct a1,a2,b)
|
|
4
|
|
select count(distinct a1,a2,b,c) from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121');
|
|
count(distinct a1,a2,b,c)
|
|
1
|
|
select count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c');
|
|
count(distinct a1,a2,b)
|
|
0
|
|
select count(distinct b) from t1 where (a2 >= 'b') and (b = 'a');
|
|
count(distinct b)
|
|
1
|
|
select ord(a1) + count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a');
|
|
ord(a1) + count(distinct a1,a2,b)
|
|
104
|
|
explain select a1,a2,b, concat(min(c), max(c)) from t1 where a1 < 'd' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
|
|
explain select concat(a1,min(c)),b from t1 where a1 < 'd' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
|
|
explain select concat(a1,min(c)),b,max(c) from t1 where a1 < 'd' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
|
|
explain select concat(a1,a2),b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
|
|
explain select concat(ord(min(b)),ord(max(b))),min(b),max(b) from t1 group by a1,a2;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 147 NULL 9 Using index for group-by
|
|
select a1,a2,b, concat(min(c), max(c)) from t1 where a1 < 'd' group by a1,a2,b;
|
|
a1 a2 b concat(min(c), max(c))
|
|
a a a a111d111
|
|
a a b e112h112
|
|
a b a i121l121
|
|
a b b m122p122
|
|
b a a a211d211
|
|
b a b e212h212
|
|
b b a i221l221
|
|
b b b m222p222
|
|
c a a a311d311
|
|
c a b e312h312
|
|
c b a i321l321
|
|
c b b m322p322
|
|
select concat(a1,min(c)),b from t1 where a1 < 'd' group by a1,a2,b;
|
|
concat(a1,min(c)) b
|
|
aa111 a
|
|
ae112 b
|
|
ai121 a
|
|
am122 b
|
|
ba211 a
|
|
be212 b
|
|
bi221 a
|
|
bm222 b
|
|
ca311 a
|
|
ce312 b
|
|
ci321 a
|
|
cm322 b
|
|
select concat(a1,min(c)),b,max(c) from t1 where a1 < 'd' group by a1,a2,b;
|
|
concat(a1,min(c)) b max(c)
|
|
aa111 a d111
|
|
ae112 b h112
|
|
ai121 a l121
|
|
am122 b p122
|
|
ba211 a d211
|
|
be212 b h212
|
|
bi221 a l221
|
|
bm222 b p222
|
|
ca311 a d311
|
|
ce312 b h312
|
|
ci321 a l321
|
|
cm322 b p322
|
|
select concat(a1,a2),b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b;
|
|
concat(a1,a2) b min(c) max(c)
|
|
aa a a111 d111
|
|
aa b e112 h112
|
|
ab a i121 l121
|
|
ab b m122 p122
|
|
ba a a211 d211
|
|
ba b e212 h212
|
|
bb a i221 l221
|
|
bb b m222 p222
|
|
ca a a311 d311
|
|
ca b e312 h312
|
|
cb a i321 l321
|
|
cb b m322 p322
|
|
select concat(ord(min(b)),ord(max(b))),min(b),max(b) from t1 group by a1,a2;
|
|
concat(ord(min(b)),ord(max(b))) min(b) max(b)
|
|
9798 a b
|
|
9798 a b
|
|
9798 a b
|
|
9798 a b
|
|
9798 a b
|
|
9798 a b
|
|
9798 a b
|
|
9798 a b
|
|
explain select a1,a2,b,d,min(c),max(c) from t1 group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 128 Using temporary; Using filesort
|
|
explain select a1,a2,b,d from t1 group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 128 Using temporary; Using filesort
|
|
explain select a1,a2,min(b),max(b) from t1
|
|
where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (c > 'a111') group by a1,a2;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 76 Using where; Using index
|
|
explain select a1,a2,b,min(c),max(c) from t1
|
|
where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (d > 'xy2') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ALL idx_t1_0,idx_t1_1,idx_t1_2 NULL NULL NULL 128 Using where; Using temporary; Using filesort
|
|
explain select a1,a2,b,c from t1
|
|
where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (d > 'xy2') group by a1,a2,b,c;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ALL idx_t1_0,idx_t1_1,idx_t1_2 NULL NULL NULL 128 Using where; Using temporary; Using filesort
|
|
explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') or (b < 'b') group by a1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
|
|
explain select a1,a2,b from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (c > 'a111') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 76 Using where; Using index
|
|
explain select a1,a2,min(b),c from t2 where (a2 = 'a') and (c = 'a111') group by a1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
|
|
select a1,a2,min(b),c from t2 where (a2 = 'a') and (c = 'a111') group by a1;
|
|
a1 a2 min(b) c
|
|
a a a a111
|
|
explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') or (b = 'a') group by a1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
|
|
explain select a1,a2,b,min(c),max(c) from t2
|
|
where (c > 'a000') and (c <= 'd999') and (c like '_8__') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t2 index NULL idx_t2_1 163 NULL 164 Using where; Using index
|
|
explain select a1, a2, b, c, min(d), max(d) from t1 group by a1,a2,b,c;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 128 Using temporary; Using filesort
|
|
explain select a1,a2,count(a2) from t1 group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index NULL idx_t1_1 163 NULL 128 Using index
|
|
explain select a1,a2,count(a2) from t1 where (a1 > 'a') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 128 Using where; Using index
|
|
explain select sum(ord(a1)) from t1 where (a1 > 'a') group by a1,a2,b;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 index idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 128 Using where; Using index
|
|
explain select a1 from t1 where a2 = 'b' group by a1;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 130 NULL 5 Using where; Using index for group-by
|
|
select a1 from t1 where a2 = 'b' group by a1;
|
|
a1
|
|
a
|
|
b
|
|
c
|
|
d
|
|
explain select distinct a1 from t1 where a2 = 'b';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 range NULL idx_t1_1 130 NULL 5 Using where; Using index for group-by
|
|
select distinct a1 from t1 where a2 = 'b';
|
|
a1
|
|
a
|
|
b
|
|
c
|
|
d
|
|
create table bug12672 (
|
|
pk_col int auto_increment primary key, a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' '
|
|
) engine=innodb;
|
|
insert into bug12672 (a1, a2, b, c, d, dummy) select * from t1;
|
|
create index idx12672_0 on bug12672 (a1);
|
|
create index idx12672_1 on bug12672 (a1,a2,b,c);
|
|
create index idx12672_2 on bug12672 (a1,a2,b);
|
|
analyze table t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Table is already up to date
|
|
explain select distinct a1 from bug12672 where pk_col not in (1,2,3,4);
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE bug12672 range PRIMARY PRIMARY 4 NULL 93 Using where; Using temporary
|
|
select distinct a1 from bug12672 where pk_col not in (1,2,3,4);
|
|
a1
|
|
a
|
|
b
|
|
c
|
|
d
|
|
drop table bug12672;
|
|
drop table t1;
|
|
drop table t2;
|
|
drop table t3;
|
|
create table t1 (
|
|
a varchar(30), b varchar(30), primary key(a), key(b)
|
|
) engine=innodb;
|
|
select distinct a from t1;
|
|
a
|
|
drop table t1;
|
|
create table t1(a int, key(a)) engine=innodb;
|
|
insert into t1 values(1);
|
|
select a, count(a) from t1 group by a with rollup;
|
|
a count(a)
|
|
1 1
|
|
NULL 1
|
|
drop table t1;
|