sum(x) over( partition by y ORDER BY z ) 分析

參考的博文出處:http://www.cnblogs.com/luhe/p/4155612.html,對博文進行了修改新增,修改了錯誤的地方

之前用過row_number(),rank()等排序與over( partition by?... ORDER BY ...),這兩個比較好理解:?先分組,然后在組內排名

今天突然碰到sum(...) over( partition by?... ORDER BY?... ),居然搞不清除怎么執行的,所以查了些資料,做了下實操。

1. 從最簡單的開始

  sum(...) over( ),對所有行求和

  sum(...) over( order by ...?),和 =? 第一行 到 與當前行同序號行的最后一行的所有值求和,文字不太好理解,請看下圖的算法解析。

復制代碼
with aa as
( 
SELECT 1 a,1 b, 3 c FROM dual union
SELECT 2 a,2 b, 3 c FROM dual union
SELECT 3 a,3 b, 3 c FROM dual union
SELECT 4 a,4 b, 3 c FROM dual union
SELECT 5 a,5 b, 3 c FROM dual union
SELECT 6 a,5 b, 3 c FROM dual union
SELECT 7 a,2 b, 3 c FROM dual union
SELECT 8 a,2 b, 8 c FROM dual union
SELECT 9 a,3 b, 3 c FROM dual
)
SELECT a,b,c,
sum(c) over(order by b) sum1,--有排序,求和當前行所在順序號的C列所有值
sum(c) over() sum2--無排序,求和 C列所有值
from aa
復制代碼



補充 by 松門一枝花:

WITH aa AS( SELECT 1 a,1 b, 3 c FROM dualUNIONSELECT 2 a,2 b, 3 c FROM dualUNIONSELECT 3 a,3 b, 3 c FROM dualUNIONSELECT 4 a,4 b, 3 c FROM dualUNIONSELECT 5 a,5 b, 3 c FROM dualUNIONSELECT 6 a,5 b, 3 c FROM dualUNIONSELECT 7 a,2 b, 3 c FROM dualUNIONSELECT 8 a,2 b, 8 c FROM dualUNIONSELECT 9 a,3 b, 3 c FROM dual)
SELECT a,b,c,SUM(c) over(order by a) sum1,--有排序,求和當前行所在順序號的C列所有值--【博主新增的】SUM(c) over(order by b) sum2,--有排序,求和當前行所在順序號的C列所有值SUM(c) over() sum3  FROM aa order by a;       --無排序,求和 C列所有值



2. 與 partition by 結合

  sum(...) over( partition by...?),同組內所行求和

  sum(...) over( partition by...?order by ... ),同第1點中的排序求和原理,只是范圍限制在組內

復制代碼
with aa as
( 
SELECT 1 a,1 b, 3 c FROM dual union
SELECT 2 a,2 b, 3 c FROM dual union
SELECT 3 a,3 b, 3 c FROM dual union
SELECT 4 a,4 b, 3 c FROM dual union
SELECT 5 a,5 b, 3 c FROM dual union
SELECT 6 a,5 b, 3 c FROM dual union
SELECT 7 a,2 b, 3 c FROM dual union
SELECT 7 a,2 b, 8 c FROM dual union
SELECT 9 a,3 b, 3 c FROM dual
)
SELECT a,b,c,sum(c) over( partition by b ) partition_sum,
sum(c) over( partition by b order by a desc) partition_order_sumFROM aa;
復制代碼

  



本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539812.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539812.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539812.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

sqlserver 日期與字符串之間的轉換

字符轉換為日期時,Style的使用 --1. Style101時,表示日期字符串為:mm/dd/yyyy格式SELECT CONVERT(datetime,11/1/2003,101)--結果:2003-11-01 00:00:00.000 --2. Style101時,表示日期字符串為:dd/mm/yyyy格式SELECT CONVERT(datetime,11/1/2003,103)--結果:2003-01-11 00:00:00…

idea數據庫反向生成實體類_IntelliJ IDEA 的數據庫管理工具實在太方便了

1. 前言對于一個有軟件潔癖的人,能用現有的軟件解決問題的絕不安裝新的軟件。Java后端開發主要跟數據庫打交道,所以數據庫圖形化界面(GUI)是少不了的。通常圖形化操作關系型數據庫(RMDBS)大多數人會選擇Nav…

DBMS_OUTPUT.PUT_LINE沒有輸出

解決方法: 打開打印輸出 set serveroutput on;問: 明明設了,但是還是沒有打印啊! 答: 只有在調用 存儲過程的時候,才會打印出來。在創建編譯的時候,是不會打印出來的。 (博主今天…

Fresco 二三事:圖片處理之旋轉、縮放、裁剪切割圖片

關于Fresco加載圖片的處理,例如旋轉、裁剪切割圖片,在官方文檔也都有提到,只是感覺寫的不太詳細,正好最近項目里有類似需求,所以分享一些使用小tip,后面的朋友就不用再走彎路浪費時間了。(測試圖…

老年人計算機應用基礎,國開電大老年心理健康作業一參考答案

題目1.腦功能衰退明顯的癥狀是( )。A. 記憶力衰退B. 皮膚老化C. 孤獨感強D. 感知覺能力的退化【答案】:記憶力衰退題目2.下列哪項不屬于老年人的特點:( )。A. 肺功能下降B. 體重下降C. 視野狹窄D. 嗜睡【答案】:嗜睡題目3.下列不是診斷老年…

家裝強電弱電布線圖_關于你不知道的弱電改造詳解 提早了解好做準備

在我們的日常生活中,沒有一處是不用電的。洗衣、做飯、看電視,這些我們生活中看起來平淡無奇的小事,離開電卻難以為繼。今天,裝一網為大家介紹弱電改造,很多業主不知道弱電改造是什么意思,也不知道弱電改造…

SecureCRT配置前--Linux網卡設置

在用SecureCRT連接Linux的時候,需要設置Linux的網卡信息。 1、輸入命令:setup,彈出配置,選擇Network configuration,配置網絡 2、選擇device configuration 配置網卡 3、選擇eth0,第一塊網卡 4、配置eth0網…

創建SQL函數計算員工加班時間

你好,韓老師有個問題請教。我想通過秒計算加班時間。規則為:加班滿4小時才算加班,加班時間滿8小時為加班一天,加班時間不足4小時不算加班,加班時間大于4小時小于8小時為0.5個加班。我寫了一個自定義函數計算但是計算出…

西安石油大學計算機基礎考試試題,2017年西安石油大學計算機學院824計算機組成原理考研題庫...

一、名詞解釋1. 異構多核【答案】異構多核處理機內的各個計算內核結構不同,地位不對等。一般多采用“主處理核協處理核”的主從架構。 異構多核處理機的優勢在于可以同時發揮不同類型處理機各自的長處來滿足不同種類的應用的性能和功耗需求。研宄表明&am…

cdn節點人少延遲高_讓你刷劇一直爽,CDN原理是什么

鼠年春節,一個特別的春節。受疫情影響,假期比往年長了一些。這么長時間宅在家中,想必大家除了睡覺,花費時間最多的就是“刷劇”了。今天講的技術主題就和“刷劇”有關,它是CDN。我們通過觀察CDN的技術來看CDN的產業發展…

ping不通Linux系統解決方法

【申明】解決方法有很多,本文不一定全,本文的方法不一定能幫助你 一、常規安裝 1、檢查windows系統的網絡,是公用還是專用,修改網絡類型為專用。 2、關閉windows防火墻,殺毒軟件防火墻。 3、關閉Linux防火墻&#…

Linux啟動或重啟網卡【命令】

啟動:ifup eth0重啟:/etc/init.d/network/restart 等價于 service network restart

圖形的裝飾教案計算機,《電腦圖案設計師》教案教學設計

《電腦圖案設計師》教案教學設計《電腦圖案設計師》是湖北長江出版集團出版的小學《信息技術》四年級上冊第四單元第二次活動的內容。這節課研究的是Windows畫圖軟件中的“翻轉/旋轉”和“拉伸/扭曲”兩條命令。根據我們對學生的了解和教材的分析,認為這兩個知識點如…

boot spring 沒有父子容器_Spring 系列(二):Spring MVC的父子容器

1.背景在使用Spring MVC時候大部分同學都會定義兩個配置文件,一個是Spring的配置文件spring.xml,另一個是Spring MVC的配置文件spring-mvc.xml。在這里給大家拋個問題,如果在spring.xml和spring-mvc.xml文件中同時定義一個相同id的單例bean會…

Linux創建目錄【命令】

創建一個hello目錄 mkdir /hello -------------------------------------- mkdir 相當于 make directory 相對路徑:不從/開始,而是從當前目錄開始,例如:data/ ,mnt/zmg絕對路徑:從/開始的目錄,就叫絕對…

php string常用函數

<?php$a[]a;$a[]b;$a[]C;echo "</br>";/* implode — 將一個一維數組的值轉化為字符串說明string implode ( string $glue , array $pieces )string implode ( array $pieces )用 glue 將一維數組的值連接為一個字符串。 參數glue 默認為空的字符串。 pie…

計算機配置的內存的容量為1GB,如果某計算機的內存尋址空間是1GB,那么這臺計算機地址總線的線數為()根。A.32B.20C.16D.30 - 試題答案網問答...

相關題目與解析計算機內存的容量大小受到(11)位數的限制。若該總線為20位&#xff0c;可以尋址的內存空間為(12)字節。A&#xff0e;地址某計算機數據總線為8位&#xff0c;地址總線為10位&#xff0c;則CPU可以直接尋址的內存空間范圍為______字節。A&#xff0e;28B&#xff…

手術后多久可以做膽摘除_近視手術后多久可以化眼妝?

今天小編就和大家聊聊&#xff0c;做完近視手術后&#xff0c;多久可以畫眼妝&#xff1f;很多女生做完手術后&#xff0c;非常關心的一件事情就是多久可以化妝&#xff0c;化妝對手術效果有沒有影響&#xff1f;今天&#xff0c;小編就此問題特別咨詢了屈光手術專家。專家建議…

Linux創建文件【命令】

在/opt/hello 目錄下創建 world.txt 使用命令&#xff1a;touch 文件名 touch world.txt ---------------------------------------- touch “摸”。touch[文件名]&#xff0c;就是摸一下文件&#xff0c;如果文件不存在&#xff0c;就建立新文件。如果存在&#xff0c;就改…

【CentOS 7LAMP架構4】,PHP5和PHP7的安裝和配置#171219

2019獨角獸企業重金招聘Python工程師標準>>> hellopasswd 安裝PHP5 PHP官網www.php.net當前主流版本為5.6/7.1cd /usr/local/srcwget http://cn2.php.net/distributions/php-5.6.30.tar.bz2bzip2 -d php-5.6.30.tar.bz2tar xvf php-5.6.30.tarcd php-5.6.30./config…