1. 程式人生 > >ORACLE 的OVER(PARTITION BY... ORDER BY...)分析函式講解

ORACLE 的OVER(PARTITION BY... ORDER BY...)分析函式講解

使用說明和意義

顧名思義,PARTITION 中文是分割的意思,ORDER 是排序的意思,所以翻譯一下就是先把一組資料按照制定的欄位進行分割成各種組,然後組內按照某個欄位排序。
例項一

select  t.*,count(1) over (partition by act_app_info_id ) from EQUIPMENT_USER_INFO t;

根據act_app_info_id分組,統計每一組的數量,其他列也可以展示
結果圖如下 :
這裡寫圖片描述
例項一

  (select *
           from (select ROW_NUMBER() over(partition by
act_app_info_id, user_login_id order by create_time desc) rn, t.user_login_id, t.act_app_info_id, t.create_time from EQUIPMENT_USER_INFO t) eui where eui.rn = 1);

先根據act_app_info_id, user_login_id 分組,然後根據建立時間排序,取第一條資料。結果如下圖:
這裡寫圖片描述

相關推薦

oracle分析函式 overpartition by ...order by ...)

一:分析函式overOracle從8.1.6開始提供分析函式,分析函式用於計算基於組的某種聚合值,它和聚合函式的不同之處是對於每個組返回多行,而聚合函式對於每個組只返回一行。 1、分析函式和聚合函式的不同之處: 分析函式和聚合函式很多是同名的,意思也一樣,只是聚合函式用group by分組,每個分組返回一

Oracle 分析函式row_number() over (partition by order by )

1、格式 row_number() over(partition by 列名1 order by 列名2 desc) 2、解析 表示根據 列名1 分組,然後在分組內部根據 列名2 排序,而此函式計算的值就表示每組內部排序後的順序編號,可以用於去重複值 與r

ORACLEOVER(PARTITION BY... ORDER BY...)分析函式講解

使用說明和意義 顧名思義,PARTITION 中文是分割的意思,ORDER 是排序的意思,所以翻譯一下就是先把一組資料按照制定的欄位進行分割成各種組,然後組內按照某個欄位排序。 例項一 select t.*,count(1) over (part

【Orcale】分析函式 OVER(PARTITION BY... ORDER BY...)的講解

OVER(PARTITION BY... ORDER BY...)的使用說明和意義 這個函式長這個樣子:OVER(PARTITION BY... ORDER BY...) 顧名思義,PARTITION 中文是分割的意思,ORDER 是排序的意思,所以翻譯一下就是先把一

Oracle資料庫rank()over(partition by order by)實現分組 排序 取前幾資料

Oracle1.使用 rank()over(order by)得到記錄排序根據工資排名,排名相同的時候下一個排名累加,比如第三和第四工資一樣,那麼第三第四排名都是3,第五排名是5而非4dense_rank()實現的效果不累加,第五仍是4例:select code 編號,sal

開窗函式over(partition by .. [order by ..])用法

1、/** 建立表 */ create table test_orer_partition_by ( prov_name varchar(20), city_name varchar(50), val_cnt int ) ; 2、/** 插入測試資料 */ insert

ROW_NUMBER() OVER(PARTITION BY ORDER BY )RN 只選一行

back ant order by semi AC order CA lock .com select PEGGED_SO_ID,PEGGED_SO_LINE_ID ,ITEM_ID ,QUANTITY ,LOCATION ,SITEID from IN_S

SQLserver的ROW_NUMBER() OVER( [ PARTITION BY ... ] [ ORDER BY ... ] )解釋

一、 OVER() 函式 語法結構:OVER( [ PARTITION BY … ] [ ORDER BY … ] ) [1] PARTITION BY 子句進行分組; [2] PARTITION BY 子句進行排序。 視窗函式OVER()指定一組行,開窗函式計算從視窗函式輸

Oracle over (partition by

1.例子:分組查詢時間最大的資料行 select t2.* from    (select t1.*,row_number() over (partition by t1.sheet_id order by t1.check_time desc nulls last) rn

over partition by order by rows|range(7)之row_number

rank()/dense_rank()函式實現了分割槽內部排序的功能。 對於數值相同的行,rank()/dense_rank()給出了相同的數字, row_number函式處理方式則不同,該函式將會給出不同的數字,從而實現資料的大排行 副作用是相同數值的行,將有不同的序

row_number() over (partition by order by desc)用法

partition by關鍵字是分析性函式的一部分,它和聚合函式不同的地方在於它能返回一個分組中的多條記錄,而聚合函式一般只有一條反映統計值的記錄,partition by用於給結果集分組,如果沒有指定那麼它把整個結果集作為一個分組,分割槽函式一般與排名函式一起使用。

OVEROVER(PARTITION BY... ORDER BY...)的使用

select PGM_ID,PGM_SH_CFM_CD,row_number() over(partition by PGM_ID order by PGM_SH_CFM_CD)rn, count(*) over(partition by PGM_ID) cnt from MED_PGM_SH_CF

oracle over (partition by )用法

select * from test 資料: A B C 1 1 1 1 2 2 1 3 3 2 2 5 3 4 6 ---將B欄位值相同的對應的C 欄位值加總 select a,b,c, SUM(C) OVER (PARTITION BY B) C_Sum from test A B C C_S

oracle中如何更改order by的預設排序?

oracle中如何更改order by的預設排序? 直接看問題: select * from scott.emp p order by p.job; 執行結果為: 通過order by 出來的排序結果以此為:ANALYST、CLERK、MANAGER、PRES

解決Oracle分頁使用order by排序造成分頁順序不對的問題

今天在做專案的時候,在使用JPA對訂單進行按時間排序的時候發現查分頁資料的時候有點問題。我先一頁設定一條資料,然後發現第一頁和第二頁的資料居然一樣。下面給出我BaseDao中的JPA分頁方法: @Override public List<T> f

oracle】中文的order by排序規則

總結: 單純使用order by排序中文,是根據ascii碼排序的,不是根據拼音排序的。 如果要根據拼音排序某一列,需要用函式nlssort(列名,’NLS_SORT=SCHINESE_PINYIN

Hibernate、oracle分頁、order by問題

public String getLimitString(String sql, boolean hasOffset); { StringBuffer pagingSelect = new StringBuffer(sql.length()

Oracle 中distinct 和order by 同時使用,可能出現的問題

事例在Oracle資料庫中執行SQL:  select distinct name from tableName order by id 原本想過濾name欄位重複值,並按照id進行排序,但是SQL報錯,無法執行。 原因:SELECT語句中含有DISTINCT關

Mysql group by,order by,dinstict優化

border 合並結果集 strong borde ron 無法找到 原理 sub contain 1.order by優化 實現方式: 1. 根據索引字段排序,利用索引取出的數據已經是排好序的,直接返回給客戶端; 2. 沒有用到索引,將取出的數據進行一次排序操作後返回給客

關於group by 、group by having、where group by與 group by order by

姓名 函數 學生 art sco 分數 現在 大於 數學 轉載:https://blog.csdn.net/qq_28007533/article/details/72859474 現有表 score name kecheng fenshu 張三