oracle對查詢結果進行排名

2021-08-27 19:00:51 字數 786 閱讀 8371

要解決的問題:我們想對查詢出來的資料進行排名統計,但又不想在源資料中插入相應的字段。

解決方法:[color=red]以oracle中scott使用者下的emp表為例演示[/color]

對所有員工的工資進行統計排名,查詢語句如下:

select empno,sal,[color=red]rank() over(order by sal desc)[/color] as sal_rank from emp;

結果如下圖:

[img]

select empno,sal,[color=red]dense_rank() over(order by sal desc)[/color] as sal_rank from emp;

結果如下圖:

[img]

以上兩種情況演示了不同排名演算法時對結果的操作,接下來考慮這麼一種情況:對指定部門員工的薪水進行排名統計。

解決方法如下:

select empno,deptno,sal,[color=red]rank() over(partition by deptno order by sal desc)[/color] as sal_rank from emp;

結果如下圖:

[img]

[color=darkblue]rank:處理等值排名時佔位顯示;

dense_rank:處理等值排名時不佔位;

partition by column_name:指定在某範圍內進行排名;

over(order by column_name):指定以哪個字段進行排名統計。[/color]

對查詢結果進行排序

order by 列名 asc desc 公升序或降序排序單列排序 多列排序 指定排序方向 一 單列排序 select from bookinfo order by price desc 注意 預設為公升序排序 二 多列排序 按照多個列進行排序,預設公升序,如 相同 時,按庫存排序 select f...

如何將查詢結果進行排名

於是乎我就開始寫,嘿,奇怪,我還真沒有寫過,於是找了寫資料,借鑑了一下別人的,結果如下 create procedure csp getoperatorscorebydate begindate datetime,enddate datetime ascreate table temp 定義臨時表,...

mysql中對查詢結果進行排序

在進行web開發時,獲取結果排序大部分時候要麼正序排esc,要麼反序排desc,但有時候會出現比較複雜的排序,比如查詢參加培訓的學生所在的學校,部分學生並沒有獲取到其所在的學校資訊,排序的時候需要根據學校學生人數倒排序,同時對於不知道學校的統一記為其他,放在最後面。實現方式之一 select cas...