1. over介紹
over為開窗函式。就是把滿足條件的資料分成幾個區域,每個區域可以通過像現實中的「視窗」來觀察統計這些資料。
over不能單獨使用,要和分析函式:rank(), dense_rank(), row_number(),ntile()等一起使用。
2. 示例
(1)指令碼
/*(2)rank(排名):表結構*/
create
table
student(
no int,
ca varchar(20
), name
varchar(50
), subject
varchar(50
), scorce
int);
/*資料
*/insert
into student values(1, '
1班', '
張三', '
語文', 85
);insert
into student values(2, '
1班', '
張三', '
數學', 90
);insert
into student values(3, '
1班', '
張三', '
英語', 70
);insert
into student values(4, '
1班', '
李四', '
語文', 70
);insert
into student values(5, '
1班', '
李四', '
數學', 99
);insert
into student values(6, '
1班', '
李四', '
英語', 62
);insert
into student values(7, '
1班', '
王五', '
語文', 82
);insert
into student values(8, '
1班', '
王五', '
數學', 74
);insert
into student values(9, '
1班', '
王五', '
英語', 89
);insert
into student values(10, '
2班', '
劉曉希', '
語文', 77
);insert
into student values(11, '
2班', '
劉曉希', '
數學', 99
);insert
into student values(12, '
2班', '
劉曉希', '
英語', 80
);insert
into student values(13, '
2班', '
朱鵬', '
語文', 87
);insert
into student values(14, '
2班', '
朱鵬', '
數學', 86
);insert
into student values(15, '
2班', '
朱鵬', '
英語', 76
);insert
into student values(16, '
2班', '
歐陽雪', '
語文', 91
);insert
into student values(17, '
2班', '
歐陽雪', '
數學', 83
);insert
into student values(18, '
2班', '
歐陽雪', '
英語', 77
);commit;
select t.*, rank() over(partition by t.subject order按照科目進行分割槽,每個區域按照分數進行排序,並得出排序結果的排名號。rank()是跳躍排序,有兩個第1名,接下來就是第3名。by t.scorce desc) as paiming from student t;
(2)dense_rank(密集排名)
select t.*,dense_rank() over(partition by t.subject order按照科目進行分割槽,每個區域按照分數進行排序,並得出排序結果的排名號。dense_rank()為連續排序,有兩個第1名,接下來就是第2名。by t.scorce desc) as paiming from student t;
(3)row_number(行號)
select t.*,row_number() over(partition by t.subject order按照科目進行分割槽,每個區域按照分數進行排序,並得出排序結果的序號。by t.scorce desc) as num from student t;
OVER 輕鬆搞定排名查詢
不多說,上 可以根據需要,分年級,科目,及性別出排名 drop table t1 create table t1 select年級 varchar select50,科目 varchar select50,學生名 varchar select20,性別 varchar select2,分數 deci...
sql查詢慢 查詢
select creation time n 語句編譯時間 last execution time n 上次執行時間 total physical reads n 物理讀取總次數 total logical reads execution count n 每次邏輯讀次數 total logical ...
sql查詢 範圍查詢(區間查詢)
1 範圍查詢 區間查詢 2 in 3 查詢年齡為18,28,38的人 select from student where age 18 or age 28 or age 38 4 select from student where age in 18,28,38 5 not in6 查詢年齡為18,...