Bug #82572 | Sorting a list based on some value under associated table containing text field | ||
---|---|---|---|
Submitted: | 13 Aug 2016 4:52 | Modified: | 13 Aug 2016 7:43 |
Reporter: | Sudhir Shrestha | Email Updates: | |
Status: | Duplicate | Impact on me: | |
Category: | MySQL Server: Optimizer | Severity: | S2 (Serious) |
Version: | mysql Ver 14.14 Distrib 5.7.13, for Lin | OS: | Ubuntu |
Assigned to: | CPU Architecture: | Any | |
Tags: | sorting, text |
[13 Aug 2016 4:52]
Sudhir Shrestha
[13 Aug 2016 4:55]
Sudhir Shrestha
Edit bug Synopsis
[13 Aug 2016 7:32]
MySQL Verification Team
Just for discussion, I think this testcase shows the reported scenario? -- drop table if exists s,t; create table s(a int not null auto_increment primary key,b text character set latin1)engine=innodb; create table t(c int not null auto_increment primary key,d int)engine=innodb; insert into s(b) values('a'),('b'),('c'); insert into s(b) select 'a' from s,s a,s b,s c,s d,s e,s f,s g; insert into t(d) values(1),(2),(3); insert into t(d) select floor(rand()*1000) from t,t a,t b,t c,t d,t e,t f,t g; set sql_mode='only_full_group_by'; select s.a,s.b,avg(t.d) as average from s inner join t on s.a=t.c where s.a%1000 = 0 group by t.c order by average desc; -- mysql> select s.a,s.b,avg(t.d) as average from s -> inner join t on s.a=t.c -> where s.a%1000 = 0 -> group by t.c -> order by average desc; +------+------+----------+ | a | b | average | +------+------+----------+ | 6000 | a | 163.0000 | | 5000 | a | 949.0000 | | 4000 | a | 936.0000 | | 3000 | a | 319.0000 | | 2000 | a | 882.0000 | | 1000 | a | 694.0000 | +------+------+----------+ 6 rows in set (0.18 sec)
[13 Aug 2016 7:33]
MySQL Verification Team
On same testcase, 5.6.32 says "ERROR 1055 (42000): 'test.s.a' isn't in GROUP BY"
[13 Aug 2016 7:36]
MySQL Verification Team
On 5.7, the workaround to get a correct result is to run: set global internal_tmp_disk_storage_engine=MyISAM;
[13 Aug 2016 7:39]
MySQL Verification Team
Fairly sure this is a duplicate of the bug: http://bugs.mysql.com/bug.php?id=79366 (ORDER BY does not work correctly with grouped AVG() values extracted from JSON)