MySQL 与 GROUP BY 语句发生错误(查询错误 : Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column)

标签 mysql group-by

这是我的查询:

SELECT u_id, created_date,
COUNT(u_id) AS count_total
FROM table
WHERE statement='this'
GROUP BY DAY(created_date)
ORDER BY created_date ASC

我得到的错误是:

查询错误:SELECT 列表的表达式 #1 不在 GROUP BY 子句中并且包含非聚合列。

我已阅读 this post但我不知道如何让它工作,因为现在问题似乎是添加了 DAY。

我尝试将 SELECT 语句更改为:

SELECT u_id, ANY_VALUE(created_date) as test_date

但这没有用。

最佳答案

mysql 5.7 改变了 group by 的默认工作方式。 (我假设您的答案是 5.7。)

基本上,因为 u_id 有多个可能的值,所以 mysql 不知道您想要哪一个。从 5.7 开始,使用默认设置,它将抛出您所看到的错误。您引用的答案有一个很好的图表,请再次查看。让查询返回结果的一种方法是:

SELECT ANY_VALUE(u_id), ANY_VALUE(created_date),
COUNT(u_id) AS count_total
FROM table
WHERE statement='this'
GROUP BY DAY(created_date)
ORDER BY created_date ASC

mysql手册页也有很好的解释https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_any-value

关于MySQL 与 GROUP BY 语句发生错误(查询错误 : Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48392082/

相关文章:

php - MySQL 或 PHP PDO 错误

mysql - 无法向现有表添加外键

php - MySQL 查询何时真正在 PHP 中执行?

mysql - 收到 "[Err] 1111 - Invalid use of group function"错误

sql - 如何在 SWIFT 的 IOS CORE-DATA 请求中使用 SQL GROUP BY 和 SUM 函数?

sql - 一起选择和分组

php - 嵌入式 PHP MySQL 删除命令带有字母和数字值

mysql - 从 2 个表中获取计数并按月分组

python - 如何在groupby中使用字符串 "mean"或 "sum"来动态化?

mysql - 获取MySQL中GROUP BY结果的百分比值