時(shí)間:2024-02-28 13:28作者:下載吧人氣:23
今天大概弄懂了partition by和group by的區(qū)別聯(lián)系。
1. group by是分組函數(shù),partition by是分析函數(shù)(然后像sum()等是聚合函數(shù));
2. 在執(zhí)行順序上,
以下是常用sql關(guān)鍵字的優(yōu)先級(jí)
from > where > group by > having > order by
而partition by應(yīng)用在以上關(guān)鍵字之后,實(shí)際上就是在執(zhí)行完select之后,在所得結(jié)果集之上進(jìn)行partition。
3.partition by相比較于group by,能夠在保留全部數(shù)據(jù)的基礎(chǔ)上,只對(duì)其中某些字段做分組排序(類似excel中的操作),而group by則只保留參與分組的字段和聚合函數(shù)的結(jié)果(類似excel中的pivot)。
partition by
group by
4.如果在partition結(jié)果上聚合,千萬(wàn)注意聚合函數(shù)是逐條累計(jì)運(yùn)行結(jié)果的!而在group by后的結(jié)果集上使用聚合函數(shù),會(huì)作用在分組下的所有記錄上。
數(shù)據(jù)如下,
SQL1
select a.cc,a.item,sum(a.num)
from table_temp a
group by a.cc,a.item
網(wǎng)友評(píng)論