gpt4 book ai didi

mysql - SQL - 使用组合总和计算记录数

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

我有一个与此类似的用户表:

|  ID  |  DONATION  |   RANK   |
| 4 | 10 | 12 |
| 9 | 20 | 8 |
| 2 | 40 | 5 |
| 3 | 80 | 2 |

我想构建一个查询,在其中检索捐赠总和小于 100 的用户数量,按排名排序......类似于(显然不正确):

select count(*) where sum(donation) < 100 order by rank

即使可能,也不知道如何做到这一点。甚至不确定我会以正确的方式解决这个问题。有什么想法或指示吗?

最佳答案

WHERE 仅适用于列或表达式,如果要使用聚合函数(如 SUM)进行过滤,则必须使用 HAVING。例如:

  SELECT COUNT(*)
FROM your_table
HAVING SUM(donation) < 100

如果没有有效的 GROUP BY,这个查询就没有真正的意义,但你明白了:使用 HAVING 来过滤聚合函数。从技术上讲,您应该按用户 ID 分组,然后进行计数,然后对计数求和。

关于mysql - SQL - 使用组合总和计算记录数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7073413/

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