mysql – SUM(DISTINCT)基于其他列

我目前有一个看起来像这样的表:

+------+-------+------------+------------+
| id   | rate  | first_name | last_name  |
+------+-------+------------+------------+

我需要做的是获取rate列的SUM,但每个名称只能获得一次.例如,我有三行名为John Doe,每行的速率为8.我需要这些行的SUM为8而不是24,因此它为每组名称计算一次速率.

当然,SUM(DISTINCT last_name,first_name)不起作用,因为我试图对速率列求和,而不是名称.我知道在计算单个记录时,我可以使用COUNT(DISTINCT last_name,first_name),这是我试图从SUM获得的行为类型.

如何为每个名称获得SUM一个费率?

提前致谢!

解决方法:

select sum (rate)
from yourTable
group by first_name, last_name

编辑

如果你想得到这些小“总和”的所有总和,你将得到所有表的总和..

Select sum(rate) from YourTable

但是,如果由于某种原因是不同的(例如,如果你使用where,)
并且您需要上面选择的总和,就这样做.

select sum(SumGrouped) from 
(    select sum (rate) as 'SumGrouped'
    from yourTable
    group by first_name, last_name) T1
上一篇:SQL --------------- count() 函数


下一篇:挖矿原理介绍-如何免费获得比特币、ETH 丨区块链知识