校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > 詳解partition by和group by對(duì)比

詳解partition by和group by對(duì)比

熱門(mén)標(biāo)簽:在電子版地圖標(biāo)注要收費(fèi)嗎 電銷(xiāo)機(jī)器人 深圳 南京電銷(xiāo)外呼系統(tǒng)哪家好 地圖標(biāo)注如何弄全套標(biāo) 萬(wàn)利達(dá)綜合醫(yī)院地圖標(biāo)注點(diǎn) 實(shí)體店地圖標(biāo)注怎么標(biāo) 武漢AI電銷(xiāo)機(jī)器人 股票配資電銷(xiāo)機(jī)器人 外呼系統(tǒng)會(huì)封嗎

今天大概弄懂了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ì)其中某些字段做分組排序(類(lèi)似excel中的操作),而group by則只保留參與分組的字段和聚合函數(shù)的結(jié)果(類(lèi)似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

Result1

11條記錄經(jīng)group by后為10條,其中cc='cn' and item='8.1.1'對(duì)應(yīng)的兩條記錄的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

  

兩個(gè)sql的唯一區(qū)別在于a.num的排序上,但從結(jié)果紅框中的數(shù)據(jù)對(duì)比可以看到amount值并不相同,且第二個(gè)結(jié)果集amount并不都是最小值1。

在這里就是要注意將聚合函數(shù)用在partition后的結(jié)果集上時(shí),聚合函數(shù)是逐條累積計(jì)算值的!

其實(shí)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

到此這篇關(guān)于詳解partition by和group by對(duì)比的文章就介紹到這了,更多相關(guān)partition by和group by內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

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

標(biāo)簽:汕頭 泰安 武威 臺(tái)州 濟(jì)源 濟(jì)寧 安徽 廣東

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解partition by和group by對(duì)比》,本文關(guān)鍵詞  詳解,partition,和,group,對(duì)比,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解partition by和group by對(duì)比》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于詳解partition by和group by對(duì)比的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 岗巴县| 富锦市| 通山县| 新昌县| 奉节县| 平原县| 宜良县| 汤阴县| 荔波县| 山阴县| 鱼台县| 蓬溪县| 临朐县| 基隆市| 嘉黎县| 石城县| 文水县| 麦盖提县| 罗平县| 同德县| 乌拉特中旗| 郁南县| 虹口区| 绥棱县| 揭东县| 耒阳市| 义乌市| 华亭县| 中宁县| 黄梅县| 崇州市| 白城市| 阜新市| 浑源县| 涡阳县| 彩票| 阳春市| 禄丰县| 东丰县| 偃师市| 栾城县|