假设我们有一个如下所示的表
greeting | animal | freq
--------------------------
hello | dog | 1
hello | cat | 3
nice | dog | 1
day | dog | 2
我们如何按"问候"分组?并总结"频率"。同时对"动物"保持不同的记录。列?
查询结果应该是:
greeting | animal | freq_sum
-----------------------------
hello | dog | 4 <-- value is the sum of the two "hello" records' freq value
hello | cat | 4
nice | dog | 1
day | dog | 2
我知道我们能做到
select greeting, animal, count(freq) as freq_sum
from table
group by greeting
但是,这会导致来自每个组的单个记录(并且我假设它正在对动物列进行隐式MAX ?),相反,我希望聚合和值在具有同一组的所有行中重复。
非常感谢您的建议:)
如果您使用的是maria db 10.2或更高版本,那么您可以使用以下windows函数:
select greeting, animal, sum(freq) over (partition by greeting) as freq_sum
from table