oracle 窗口函數 (keep)

看到很多人對于keep不理解,這里解釋一下!


Returns?the row ranked?first?using DENSE_RANK
2種取值:
DENSE_RANK?FIRST
DENSE_RANK?LAST

keep?(DENSE_RANK?first?ORDER?BY?sl) 結果集中再取max、min的例子。


SQL>?select?*?from?test;

ID MC SL
-------------------- -------------------- -------------------
1?111?1
1?222?1
1?333?2
1?555?3
1?666?3
2?111?1
2?222?1
2?333?2
2?555?2

9?rows selected

SQL>?
SQL>?select?id,mc,sl,
2?min(mc)?keep?(DENSE_RANK?first?ORDER?BY?sl)?over(partition?by?id),
3?max(mc)?keep?(DENSE_RANK?last?ORDER?BY?sl)?over(partition?by?id)
4?from?test
5?;

ID MC SL?MIN(MC)KEEP(DENSE_RANKFIRSTORD?MAX(MC)KEEP(DENSE_RANKLASTORDE
-------------------- -------------------- ------------------- ------------------------------ ------------------------------
1?111?1?111?666
1?222?1?111?666
1?333?2?111?666
1?555?3?111?666
1?666?3?111?666
2?111?1?111?555
2?222?1?111?555
2?333?2?111?555
2?555?2?111?555

9?rows selected

SQL>

不要混淆keep內(firstlast)外(min、max或者其他):
min是可以對應last
max是可以對應first

SQL>?select?id,mc,sl,
2?min(mc)?keep?(DENSE_RANK?first?ORDER?BY?sl)?over(partition?by?id),
3?max(mc)?keep?(DENSE_RANK?first?ORDER?BY?sl)?over(partition?by?id),
4?min(mc)?keep?(DENSE_RANK?last?ORDER?BY?sl)?over(partition?by?id),
5?max(mc)?keep?(DENSE_RANK?last?ORDER?BY?sl)?over(partition?by?id)
6?from?test
7?;

ID MC SL?MIN(MC)KEEP(DENSE_RANKFIRSTORD?MAX(MC)KEEP(DENSE_RANKFIRSTORD?MIN(MC)KEEP(DENSE_RANKLASTORDEMAX(MC)KEEP(DENSE_RANKLASTORDE
-------------------- -------------------- ------------------- ------------------------------ ------------------------------ ------------------------------ ------------------------------
1?111?1?111?222?555?666
1?222?1?111?222?555?666
1?333?2?111?222?555?666
1?555?3?111?222?555?666
1?666?3?111?222?555?666
2?111?1?111?222?333?555
2?222?1?111?222?333?555
2?333?2?111?222?333?555
2?555?2?111?222?333?555

9?rows selected


SQL>?select?id,mc,sl,
2?min(mc)?keep?(DENSE_RANK?first?ORDER?BY?sl)?over(partition?by?id),
3?max(mc)?keep?(DENSE_RANK?first?ORDER?BY?sl)?over(partition?by?id),
4?min(mc)?keep?(DENSE_RANK?last?ORDER?BY?sl)?over(partition?by?id),
5?max(mc)?keep?(DENSE_RANK?last?ORDER?BY?sl)?over(partition?by?id)
6?from?test

轉載于:https://www.cnblogs.com/wlzhang/p/5054890.html

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

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

相關文章

MySQL 的實時性能監控利器

操作系統及MySQL數據庫的實時性能狀態數據尤為重要,特別是在有性能抖動的時候,這些實時的性能數據可以快速幫助你定位系統或MySQL數據庫的性能瓶頸,就像你在Linux系統上使用「top,sar,iostat」等命令工具一樣&#xff…

設置linearlayout最大高度_技術案例 | 排煙口個數與擋煙垂壁高度的關系探討

隨著《建筑防煙排煙系統技術標準》( 以下簡稱新規范) 的正式實施,新規范對排煙系統的設計提出了完全不同的設計理念。根據新規范正文: 當建筑空間凈高不大于6m時,每個防煙分區的排煙量應按不小于60m/(h㎡)計算且不小于15,000m/h( 走道不小于13,000m/h) &…

python安裝requests第三方模塊

2018-08-28 22:04:51 1 .下載到桌面后解壓,放到python的目錄下 --------------------------------------------------------------------------------------------------------------------------------------------------------- 2 . 在CMD輸入以下 F:\>cd /d F…

mysql整站源碼安裝_MySQL入門01-MySQL源碼安裝

操作系統:CentOS 6.7MySQL版本:5.6.301.前期準備首先需要CMake,可以yum直接安裝:yum install cmake也可以官網 https://cmake.org/ 下載源碼編譯。我這里選擇了官網下載最新版本cmake-3.5.2.tar.gz。# tar -zxvf cmake-3.5.2.tar.…

集算器協助Java處理結構化文本之條件過濾

直接用Java實現文本文件中數據按條件過濾會有如下的麻煩: 1、文件不是數據庫,不能用SQL訪問。當過濾條件變化時需要改寫代碼。如果要實現象SQL那樣靈活的條件過濾,則需要自己實現動態表達式解析和求值,編程工作量非常大。 2、文件太大時不能一…

python3動態加載模塊的方法實現

2019獨角獸企業重金招聘Python工程師標準>>> 需求 我們有時寫了一個功能,需要不斷地調整,但是已經在線上了,而且在執行任務, 這時要更新上去源文件,而不能結束掉當前進程,怎么辦? 所以這時&…

python 浮點數最小值_PYTHON學習筆記(3)——基本數據類型

本次學習原內容均來自MOOC國家精品課程《Python程序語言設計》嵩天第一篇在問題——“今天python了嗎?”中基本數據類型1、 整數(1)整數無限制 pow(x,y) 計算 (2)四種進制 2、 浮點數類型(1)取整…

2018.08.29 NOIP模擬 pmatrix(線性篩)

【問題描述】 根據哥德巴赫猜想(每個不小于 6 的偶數都可以表示為兩個奇素數之和),定義 哥德巴赫矩陣 A 如下:對于正整數對(i,j),若 ij 為偶數且 i,j 均為奇素數,則 Ai,j 1, 否則 Ai,j 0。現…

Windows Azure移動終端云服務管理(公測版)

概覽 云在遠方,管理在您手中。在這個移動為先 云為先的世界,服務不再是基于請求才提供,而是主動來到身邊方便您的模式了。我們最近將會陸續推出幾大移動端利器幫助您隨時隨地管理您的云服務。 首批利器之中排名第一當屬Azure云助手應用, 它是…

學習opencv3中文版_給視覺組新生的一點學習建議

如果說機械組是把機器人做出來電控組讓機器人動起來那么視覺組就是讓機器人智能化完成一個合格的機器人三者缺一不可今天就讓我們來看看視覺組師兄推薦的學習建議吧!1語言基礎 野狼隊視覺組目前使用的主要語言是C,同時也需要具備一定的C語言基礎。建議…

如何動態改變audio的播放的src

如何動態改變audio的播放的src 一、總結 一句話總結:js方式在請求外部網站的時候行,php方式在請求內外部資源都行。因為php走在js前面,所以問題可以從php方面想辦法。 1、如何使用js控制修改audio的src或它的source 的src屬性實現動態改變aud…

錯誤 open too many files

錯誤:服務器最大打開文件數65535啟動java程序報錯 open too many files解決辦法:1.增加文件描述符 #服務器本來就是65535了2.排查程序 #研發總監4.研發總監和我 一起看服務器lsof -p pid(程序)|wc -l5.最終確定程序的問題6.研發總監 去改…

mysql 水平拆分實例_2021先定個小目標?搞清楚MyCat分片的兩種拆分方法和分片規則!(二):水平拆分實例解析和代碼實現!...

一、概述根據表中的數據的邏輯關系,將同一個表中的數據按照某種條件拆分到多臺數據庫(主機)上面,這種切分稱之為數據的水平(橫向)切分。二、案例場景在業務系統中, 有一張表(日志表), 業務系統每天都會產生大量的日志數據 , 單臺服務器的數據存儲及處理能…

30分鐘快速搭建移動應用直傳OSS服務

30分鐘快速搭建移動應用直傳服務 背景 這是一個移動互聯的時代。手機APP上傳的數據會越來越多。把數據存儲的問題交給OSS, 讓開發者能更加專注于自己的應用邏輯。 那么怎么樣基于OSS構建一個APP存儲系統呢? 目的 本教程就是讓你在30分鐘內搭建一個基于OS…

用java判斷一個年份是否為閏年_判斷閏年還是平年

↑↑↑點擊上方圖片&#xff0c;了解詳情正文&#xff1a;判斷一個年份是閏年還是平年。閏年條件&#xff1a;1.可以被400整除。2.可以被4整除&#xff0c;但是不可以被100整除。代碼&#xff1a;Private Sub 查詢_Click() If Me.年份 Mod 4 0 And Me.年份 Mod 100 <> 0…

PAT L1-048 矩陣A乘以B

https://pintia.cn/problem-sets/994805046380707840/problems/994805082313310208 給定兩個矩陣A和B&#xff0c;要求你計算它們的乘積矩陣AB。需要注意的是&#xff0c;只有規模匹配的矩陣才可以相乘。即若A有R?a??行、C?a??列&#xff0c;B有R?b??行、C?b??列&a…

【JavaScript吉光片羽】--- 滑動條

燈光的亮度控制需要一個滑動條&#xff0c;先借用lamp源碼中Bar&#xff1a; var Bar function (opt) {var defaults {$id: "", // 進度條dom節點idmin: 1, // 刻度最小值stepCount: 5, // 刻度步數step: 1, // 刻度步長$alpha: "",//顯示亮度的idtouchE…

ldd /usr/bin/mysql_mysql客戶端登錄時報mysql: relocation error錯誤

在安裝了xtrabackup后&#xff0c;再用下列命令登錄時報下列錯誤[rootlocalhost ~]# mysql -u root -pmysql: relocation error: mysql: symbol strmov, version libmysqlclient_16 not defined in file libmysqlclient.so.16 with link time reference解決方法&#xff1a;查看…

python語言用什么關鍵字來聲明一個類_python使用什么關鍵字定義類

什么是類&#xff1f; 用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。 什么是方法&#xff1f; 類中的函數即為方法 如何定義一個類&#xff1f; 定義類&#xff0c;語法格式如下&#xff1a;class ClassName:. . .…

谷歌+安卓,他已經改變了世界兩次,但還想多來幾次

回望拉里佩奇的創業經歷&#xff0c;小巴發現他在幾個創業者最有可能犯&#xff08;si&#xff09;錯&#xff08;bi&#xff09;的節點上都處理得很好。 你還記得你用的第一個搜索網站是什么嗎&#xff1f; Google.com 講到它的創始人&#xff0c;一般要連起來念&#xff0c; …