partition by和group by对比的一些个人理解
group by是分组函数,partition by是分析函数
直接举例
对表x中每个水果继续评分
name score
苹果 2
苹果 5
苹果 3
桃子 7
香蕉 1
香蕉 4
select name,score,sum(sore)
from x
group by name
是先分组之后,把每一组的sore相加,最后显示的是
name score
苹果 10
桃子 7
香蕉 5
select name,score,sum(sore) over (partition by name) as 分数和
from x
是查询name和score之后,over(partition by name) 是另起一行,对sore相同的进行sum操作
name score 分数和
苹果 2 10
苹果 5 10
苹果 3 10
桃子 7 10
香蕉 1 5
香蕉 4 5
partition by 有点像是sum后的附加条件,所以partition by 是分析操作。
并且partition by是必须跟over一起使用的。