快速理解:
group by 使用一个(多个)含重复数据的字段进行表数据合算(聚合),结果集展示聚合结果。
partition by 同样适用于含重复数据的一个(多个)字段,但是不进行聚合,只是在结果集相同的数据摆在一起。
例如:不用考虑原表是什么样的,这里展示结果集。
结果集:可以看到,相同的KHBH被放置在了一起。
此外多提一嘴,使用group by时,除了被视为分组对象的字段,其他字段要使用聚合函数。group by后多行缩为一行,如果没有聚合函数,将会无法将多行数据放入一行产生报错。
而partition by展示多行,因此不需要聚合函数,但是!必须使用order by!因为分完组必须确认顺序。原因是partition by是over()函数的内部语句,over()用于max()/min()/rank()/lead()/lag()等函数的条件描述,而这些函数一旦缺少排序将失去意义。(本来也是,你都不排序,你咋求最大最小,但是排序的字段你可以自行决定)
标签:聚合,函数,over,partition,group,order From: https://www.cnblogs.com/halfgong/p/16889702.html