group by 与 partion by 区别
group by是分组函数,partition by是分区函数
partition by 关键字是分析性函数的一部分,它和聚合函数(如group by)不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,
partition by 用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组。(没有指定时 即 row_number() over(order by))
partition by 与 group by不同之处在于前者返回的是分组里的每一条数据,并且可以对分组数据进行排序操作。后者只能返回聚合之后的组的数据统计值的记录。
group by是分组函数,partition by是分析函数(然后像sum()等是聚合函数);
在执行顺序上,对于group by而言
from > where > group by > having > order by
对于partition by而言,在执行完select之后,在所得结果集之上进行partition。
在group by后的结果集上使用聚合函数,会作用在分组下的所有记录上。而如果在partition结果上聚合,千万注意聚合函数是逐条累计运行结果的!
group by将分组记录汇总成一条记录,具有去重效果
partition by显示所有数据,不会去重
转自 https://blog.csdn.net/m0_46657040/article/details/108868206
钟声敲响了日落,柏油路跃过山坡,一直通向北方的是我们想象,长大后也未曾经过~