一尘不染

基于其他列的SUM(DISTINCT)

mysql

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

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

我需要做的是获得“ SUM费率”列的信息,但每个名称仅获得一次。例如,我有三行John
Doe,每行的比率为8。我需要将SUM这些行的比率设为8,而不是24,因此它为每组名称都对比率进行一次计数。

SUM(DISTINCT last_name, first_name)当然是行不通的,因为我试图对比率列而不是名称求和。我知道在对单个记录进行计数时,我可以使用COUNT(DISTINCT last_name, first_name),这就是我试图从中得到的行为类型SUM

我怎样才能SUM为每个名字获得一个比率?

提前致谢!


阅读 2603

收藏
2020-05-17

共1个答案

一尘不染

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

编辑

如果要获取所有这些小“ sums”的总和,则将得到所有表的总和。

Select sum(rate) from YourTable

但是,如果由于某些原因有所不同(where例如,如果使用),并且您需要上述选择的总和,那就这样做。

select sum(SumGrouped) from 
(    select sum (rate) as 'SumGrouped'
    from yourTable
    group by first_name, last_name) T1
2020-05-17