關於sql資料庫三種用於進行排序的專用視窗函式

2021-10-21 10:14:37 字數 896 閱讀 1358

1、rank()

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

例如,有3條排在第1位時,排序為:1,1,1,4······

2、dense_rank()

這就是題目中所用到的函式,在計算排序時,若存在相同位次,不會跳過之後的位次。

例如,有3條排在第1位時,排序為:1,1,1,2······

3、row_number()

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

例如,有3條排在第1位時,排序為:1,2,3,4······

視窗函式用法:

《視窗函式》 over ( [partition by 《列清單》 ]

order by 《排序用列清單》 )

*其中[ ]中的內容可以忽略

題目描述

有乙個薪水表salaries簡況如下:

題目要求:對所有員工的薪水按照salary進行按照1-n的排名,相同salary並列且按照emp_no公升序排列:

輸出示例:

題解:

select emp_no,salary,

dense_rank(

)over

(order

by salary desc

)as t_rank

from salaries

where to_date=

'9999-01-01'

order

by t_rank asc

,emp_no asc

//本題使用的函式是dense_rank()

//初步了解用法

三種資料庫sql分頁查詢

關於sql分頁 今天用到分頁了順便就總結了一下 mysql 資料庫 mysql 中有分頁的關鍵字limit,它可以實現分頁很簡單 select from sys user order by userid limit startno,total startno 是查詢開始的行數,total 是要查詢出...

三種資料庫利用SQL語句進行高效果分頁

在程式的開發過程中,處理分頁 是大家接觸比較頻繁的事件,因為現在軟體基本上都是與資料庫進行掛釣的。但效率又是我們所追求的,如果是像原來那樣把所有滿足條件的記錄全部都選擇出來,再去進行分頁處理,那麼就會多多的浪費掉許多的系統處理時間。為了能夠把效率提高,所以現在我們就只選擇我們需要的資料,減少資料庫的...

三種資料庫利用SQL語句進行高效果分頁

在程式開發中,處理分頁往往是比較頻繁的事件,因為現在軟體基本上都是與資料庫進行掛釣的。但效率又是我們所追求的,如果是像原來那樣把所有滿足條件的記錄全部都選擇出來,再去進行分頁處理,那麼就會多多的浪費掉許多的系統處理時間。為了能夠把效率提高,所以現在我們就只選擇我們需要的資料,減少資料庫的處理時間,以...