婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解partition by和group by對比

詳解partition by和group by對比

熱門標簽:在電子版地圖標注要收費嗎 電銷機器人 深圳 南京電銷外呼系統哪家好 地圖標注如何弄全套標 萬利達綜合醫院地圖標注點 實體店地圖標注怎么標 武漢AI電銷機器人 股票配資電銷機器人 外呼系統會封嗎

今天大概弄懂了partition by和group by的區別聯系。

1. group by是分組函數,partition by是分析函數(然后像sum()等是聚合函數);

2. 在執行順序上,

以下是常用sql關鍵字的優先級

from > where > group by > having > order by

而partition by應用在以上關鍵字之后,實際上就是在執行完select之后,在所得結果集之上進行partition。

3.partition by相比較于group by,能夠在保留全部數據的基礎上,只對其中某些字段做分組排序(類似excel中的操作),而group by則只保留參與分組的字段和聚合函數的結果(類似excel中的pivot)。

partition by

group by

4.如果在partition結果上聚合,千萬注意聚合函數是逐條累計運行結果的!而在group by后的結果集上使用聚合函數,會作用在分組下的所有記錄上。

數據如下,

SQL1

select a.cc,a.item,sum(a.num)
from table_temp a
group by a.cc,a.item

Result1

11條記錄經group by后為10條,其中cc='cn' and item='8.1.1'對應的兩條記錄的num匯總成值3.

SQL2

select a.cc,a.num, min(a.num) over (partition by a.cc order by a.num asc) as amount
from table_temp a
group by a.cc,a.num;

select a.cc,a.num, min(a.num) over (partition by a.cc order by a.num desc) as amount
from table_temp a
group by a.cc,a.num;

Result2

  

兩個sql的唯一區別在于a.num的排序上,但從結果紅框中的數據對比可以看到amount值并不相同,且第二個結果集amount并不都是最小值1。

在這里就是要注意將聚合函數用在partition后的結果集上時,聚合函數是逐條累積計算值的!

其實partition by常同row_number() over一起使用,

select a.*, row_number() over (partition by a.cc,a.item order by a.num desc) as seq
from table_temp a

到此這篇關于詳解partition by和group by對比的文章就介紹到這了,更多相關partition by和group by內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Oracle查詢中OVER (PARTITION BY ..)用法
  • SQLServer中Partition By及row_number 函數使用詳解
  • sqlserver巧用row_number和partition by分組取top數據
  • mysql篩選GROUP BY多個字段組合時的用法分享
  • mysql使用GROUP BY分組實現取前N條記錄的方法
  • MySQL優化GROUP BY方案
  • mysql獲取group by總記錄行數的方法

標簽:汕頭 泰安 武威 臺州 濟源 濟寧 安徽 廣東

巨人網絡通訊聲明:本文標題《詳解partition by和group by對比》,本文關鍵詞  詳解,partition,和,group,對比,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解partition by和group by對比》相關的同類信息!
  • 本頁收集關于詳解partition by和group by對比的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 阿拉善右旗| 青浦区| 丰县| 永嘉县| 揭西县| 聊城市| 平山县| 如东县| 资阳市| 清水河县| 寿光市| 清流县| 永登县| 木兰县| 双峰县| 包头市| 合作市| 同德县| 尼木县| 宕昌县| 湾仔区| 黄骅市| 孝义市| 广丰县| 凤山市| 阿合奇县| 鹰潭市| 兴化市| 景宁| 唐海县| 桐柏县| 全南县| 和静县| 武邑县| 高密市| 和平区| 稷山县| 郴州市| 新民市| 微博| 德清县|