-1

下面是我创建的表的副本,我的目标是使用户名 DISTINCT 使用户名不会重复,然后我想获得每个人拥有的 TOTAL 或 SUM 值。例如,在第一行 Bob 有 2 个值,在第二行,他有另一个值,即 6,依此类推……如果将 Bob 的所有值相加,将得到 25。

id     |    username   |  value |   
1              Bob            2       
2              Chris          4
3              Bob            6
4              Bob            12
5              Chris          1
6              Bob            5
7              Viktoriya      8  

我正在寻找的结果是这样的:

username  |  value
Bob       |   25
Chris     |   5
Viktoriya |   8

我通过使用这个公式来实现这一点:

SELECT username, SUM(value) AS value
FROM my_table
GROUP BY username

但是,如果我想创建一个有条件的,比如说,我只想返回高于 5 的值呢?我尝试在下面执行以下操作,但没有成功。

SELECT username, SUM(value) AS value
FROM my_table
GROUP BY username
value >= 5
4

4 回答 4

1

用于HAVING从聚合中过滤结果

GROUP BY ...
HAVING SUM(value) > 5
于 2013-10-08T05:13:26.577 回答
0
 SELECT username, SUM(value) AS value
    FROM my_table
    GROUP BY username
    having SUM(value) >= 5
于 2013-10-08T05:13:53.320 回答
0

请尝试以下操作:

SELECT username, SUM(value) AS value
    FROM my_table
    GROUP BY username HAVING SUM(value) > 5

查询将返回每个用户名的 sum 并检查 sum 是否大于 5,然后仅在输出中返回它。

于 2013-10-08T05:14:07.053 回答
0

尝试如下,

SELECT username, SUM(value) AS value FROM my_table WHERE value >= 5 GROUP BY username
于 2013-10-08T05:15:23.733 回答