Bug #110011 inconsistent behavior with group by and order by

Submitted: 9 Feb 2023 15:20 Modified: 13 Feb 2023 13:40
Reporter: Matthew Macarty Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server: DML Severity:S3 (Non-critical)
Version:8.0.32 OS:Windows
Assigned to: CPU Architecture:Any

[9 Feb 2023 15:20] Matthew Macarty
Description:
GROUP BY monthname([value])
ORDER BY month([value]);

and 

GROUP BY dayname([value])
ORDER BY weekday([value]);

Works as expected in 8.0.31, does not appear to work in 8.0.32

How to repeat:
Try this in 8.0.32

use sakila;

select monthname(payment_date), sum(amount)
from payment
group by monthname(payment_date)
order by month(payment_date);

and 

select dayname(payment_date), sum(amount)
from payment
group by dayname(payment_date)
order by weekday(payment_date);
[9 Feb 2023 16:06] MySQL Verification Team
Hi Mr. Macarty,

Thank you for your bug report.

Please, provide us with a full test case, including the table(s), so that we can attempt to reproduce what you are observing.

Waiting on your feedback.
[9 Feb 2023 17:11] Matthew Macarty
use sakila;

select monthname(payment_date), sum(amount)
from payment
group by monthname(payment_date)
order by month(payment_date);
[10 Feb 2023 13:15] MySQL Verification Team
Hi Mr. Macarty,

We used ONLY_FULL_GROUP_BY, since this is defined by standards and got the following results:

mysql> select payment_date, monthname(payment_date), sum(amount) from payment group by monthname(payment_date) order by month(payment_date);
+---------------------+-------------------------+-------------+
| payment_date        | monthname(payment_date) | sum(amount) |
+---------------------+-------------------------+-------------+
| 2006-02-14 15:16:03 | February                |      514.18 |
| 2005-05-25 11:30:37 | May                     |     4823.44 |
| 2005-06-15 00:54:12 | June                    |     9629.89 |
| 2005-07-08 03:17:05 | July                    |    28368.91 |
| 2005-08-01 08:51:04 | August                  |    24070.14 |
+---------------------+-------------------------+-------------+
5 rows in set (0.22 sec)

mysql> select payment_date, dayname(payment_date), sum(amount) from payment group by monthname(payment_date) order by month(payment_date);
+---------------------+-----------------------+-------------+
| payment_date        | dayname(payment_date) | sum(amount) |
+---------------------+-----------------------+-------------+
| 2006-02-14 15:16:03 | Tuesday               |      514.18 |
| 2005-05-25 11:30:37 | Wednesday             |     4823.44 |
| 2005-06-15 00:54:12 | Wednesday             |     9629.89 |
| 2005-07-08 03:17:05 | Friday                |    28368.91 |
| 2005-08-01 08:51:04 | Monday                |    24070.14 |
+---------------------+-----------------------+-------------+
5 rows in set (0.23 sec)

What results do you get with the queries like above ???

Next, what did you set your sql_mode to ?????

We are waiting on your feedback.
[11 Feb 2023 15:39] Matthew Macarty
I see. So is ONLY_FULL_GROUP_BY disabled by default in 8.0.32?
[13 Feb 2023 13:40] MySQL Verification Team
Hi Mr. Macarty,

No, it is not disabled in 8.0.32. All our packages contain binaries whose sql_mode obligatory contains ONLY_FULL_GROUP_BY.

Or , as it is written in our Reference Manual:

"
The default SQL mode in MySQL 8.0 includes these modes: ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, and NO_ENGINE_SUBSTITUTION.

"

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.057 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.