gpt4 book ai didi

mysql - WHERE 子句后无效使用 GROUP BY 运算符

转载 作者:行者123 更新时间:2023-11-29 11:59:03 24 4
gpt4 key购买 nike

以下查询成功返回打印次数最多的特定用户(按 ID):

SELECT file_prints.user_id, user.major, sum(print_pages) FROM `file_prints`
INNER JOIN `user` on file_prints.user_id = user.user_id GROUP BY
file_prints.user_id
ORDER BY sum(print_pages)

当我引入一个where子句来尝试消除根本没有打印的用户(也就是说,where sum(print_pages) == 0)时,我编写了以下查询:

SELECT file_prints.user_id, user.major, sum(print_pages) FROM `file_prints`
INNER JOIN `user` on file_prints.user_id = user.user_id WHERE
sum(print_pages) > 0 GROUP BY file_prints.user_id
ORDER BY sum(print_pages)

并出现以下错误:

 #1111 - Invalid use of group function 

如何消除 sum(print_pages) 为 0 的结果?

最佳答案

这是因为您不能将聚合函数与 WHERE 子句一起使用。因此,使用 HAVING 子句如下:

SELECT file_prints.user_id, user.major, sum(print_pages) 
FROM `file_prints`
INNER JOIN `user` on file_prints.user_id = user.user_id
GROUP BY file_prints.user_id
HAVING sum(print_pages) > 0
ORDER BY sum(print_pages)

关于mysql - WHERE 子句后无效使用 GROUP BY 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32682557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com