排序視窗函式

2021-10-10 18:26:08 字數 1066 閱讀 4674

題目描述:

對所有員工的當前(to_date=『9999-01-01』)薪水按照salary進行按照1-n的排名,相同salary並列且按照emp_no公升序排列

接下來,介紹三種排序的專用視窗函式:

1、rank()

在計算排序時,若存在相同位次,會跳過之後的位次。

例如,有3條並列第一時,排序為1,1,1,4……

2、dense_rank()

在計算排序時,若存在相同位次,不會跳過之後的位次。

例如,有3條並列第一時,排序為1,1,1,2……

3、row_number()

這個函式賦予唯一的連續位次。

例如,有3條並列第一時,排序為1,2,3,4……

函式用法:

《視窗函式》 over ( [partition by 《列清單》 ] orser by 《排序用列清單》)

題目解答:

select emp_no,salary,dense_rank(

)over

(order

by salary as t_rank)

from salaries

where to_date=

'9999-01-01'

order

by emp_no ,t_rank

SQL視窗函式 排序函式

1.排序函式用途 對某一列內容的數值大小,新建一列按1,2,3.排序。2.排序函式的完整表示式 row number over partition by 分組字段 order by 需排序字段 desc asc partition by 分組字段 進行分組排序,比如按照性別對身高進行排序時,女生按照...

postgresql 視窗函式排序例項

經常遇到一種應用場景,將部分行的內容進行彙總 比較 排序。比如資料表名稱test.test2 select num,province from test.test2 得到結果 1828 黑龍江 137 黑龍江 184 黑龍江 183 福建 125 福建 143 福建 119 海南 109 海南 13...

Scala之視窗函式排序

scala視窗函式這排序rank,重複排序和不重複排序 1 引入包 import org.apache.spark.sql.expressions.window import spark.implicits.2.建立測試的df,可以直接貼上測試。3.選擇按name分組,按score排序,且倒序。va...