有價值的SQL

2021-10-19 09:23:20 字數 1330 閱讀 6591

--通用sql

1 select deptno, ename, sal

2 from emp e1

3 where

4 (

5 select count(1)

6 from emp e2

7 where e2.deptno=e1.deptno and e2.sal>=e1.sal

8 ) <=3 /*這裡的數值表示你想取前幾名*/

9 order by deptno, sal desc;

--oracle查詢

1 select * from

2 (select deptno,ename,sal,row_number() over (partition by deptno

3 order by sal desc) rn

4 from emp)

5 where rn<3;

row_number() over (partition by col1 order by col2) 表示根據col1分組,在分組內部根據 col2排序,而此函式計算的值就表示每組內部排序後的順序編號(組內連續的唯一的)

與rownum的區別在於:使用rownum進行排序的時候是先對結果集加入偽列rownum然後再進行排序,而此函式在包含排序從句後是先排序再計算行號碼.

row_number()和rownum差不多,功能更強一點(可以在各個分組內從1開時排序).

rank()是跳躍排序,有兩個第二名時接下來就是第四名(同樣是在各個分組內).

dense_rank()l是連續排序,有兩個第二名時仍然跟著第三名。相比之下row_number是沒有重複值的查詢每個部門的最高工資

select deptno,ename,sal from

(select deptno,ename,sal,row_number() over (partition by deptno order by sal desc) as sal_order

from scott.emp) where sal_order <2

select mid,reward,redate from t_reward_day r1 where ( select count(1) from t_reward_day r2 where r2.mid=r1.mid and r2.redate>r1.redate )<20 order by mid,redate

有價值的資料

網際網路的世界,不缺少資訊,缺的是把合適的資訊傳遞給需要的人。使用者需要什麼樣的資訊?能解決使用者 焦慮 緊張 憤怒 沮喪 悲傷 痛苦 情緒的資訊。如下場景 焦慮 小心不對稱造成的等待。急診室門口的家屬,等待錄取通知書的大學生。緊張 勢利不對稱造成的等待。被面試員工,會議演示的主持人。憤怒 願望不能...

有價值資料索引

2.1 tolua 參考手冊中文版 3.1 一堆python面試題 3.2 用profile協助程式效能優化 3.3 python操作redis 3.4 python標準庫 非常經典的各種模組介紹 4.1 php redis中文文件 4.2 實現excel讀寫 4.3 php判斷鍵值陣列是否存在 4...

最有價值的程式設計忠告

發表於 2012 08 20 09 15 17849次閱讀 aqee 佚名研發實踐 gounix 結對程式設計 程式語言 摘要 本文是來自貝爾實驗室plan 9作業系統的創始人rob pike給大家分享的程式設計忠告!rob pike,目前谷歌公司最著名的軟體工程師之一,曾是貝爾實驗室unix開發團...