我现在有一个表,看起来是这样的:SUM(DISTINCT)基于其他列
+------+-------+------------+------------+
| 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
每个名字的一个费率?
在此先感谢!
现在,我很抱歉没有在原始答案中提及这一点:那么我怎么能得到所有这些新的SUM的总和呢?我知道我可以在PHP中做到这一点,但是可以在该查询中获得结果的SUM? – David 2012-08-02 17:05:03
@David,请参阅我的编辑 – 2012-08-02 17:07:08
第二个查询会产生没有任何GROUP BY影响的SUM(rate),我不知道为什么。 – David 2012-08-02 17:13:41