我有类似于下面的数据库表。
id user_id amount
1 5546 1000
2 5546 52
3 53 10000
4 45 120
5 5546 10
每个用户的付款都记录在那里,这意味着每个用户可以有多个记录。
现在我需要获取金额超过 10 美元的用户数量。
这是我编写的一些基本代码,但它给了我很多结果而不是一个计数的数字,但我不明白为什么。
我的意思是,这可能是因为我正在分组,但我需要按用户 ID 进行计数,所以不知道如何正确进行。
SELECT count(*), sum(amount) as amount FROM `revenues`
GROUP BY user_id
HAVING amount > 10
这个问题可能看起来很愚蠢,但请告诉我我做错了什么
最佳答案
使用子查询:
SELECT COUNT(*)
FROM (SELECT sum(amount) as amount
FROM `revenues`
GROUP BY user_id
HAVING sum(amount) > 10
) r;
请注意,我重复了这个表达式。您已为 sum()
指定了与列同名的别名。我永远不记得MySQL中的having是指列还是别名。因此,查询重复表达式只是为了避免潜在的问题。
关于mysql - 统计所有具有特定金额总和的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56007463/