我有一个表格如下
+----+---------+-------------+--------+
| id | user_id | ip_address | amount |
+----+---------+-------------+--------+
| 1 | 2 | 192.168.1.1 | 0.5 |
| 2 | 2 | 192.168.1.1 | 0.5 |
| 3 | 2 | 192.168.1.2 | 0.5 |
| 4 | 2 | 192.168.1.3 | 0.5 |
| 5 | 5 | 192.168.5.1 | 1.5 |
| 6 | 5 | 192.168.5.1 | 1.5 |
| 7 | 5 | 192.168.5.3 | 0.5 |
+----+---------+-------------+--------+
我想获得 amount
的唯一 ip_address
SUM,并将重复项计为一个。
从上表中有 7 行,前 4 条记录是 user_id
2,后 3 条记录是 user_id
5。
我正在尝试按降序对 amount 字段和 user_id 求和,并希望输出如下。
user_id total_amount
5 2.0
2 1.5
最佳答案
试试这个方法:
select user_id, sum(amount)
from (select user_id, ip_address, amount
from tab
group by ip_address, amount ) A
group by user_id
order by user_id desc
关于mysql - 按降序排除重复项的行总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29922956/