orcale 查詢分組後的前n條記錄
使用row_number() over(partition by col1,col2 order by col3 desc)
示例如下:
select * from (select col1,col2,col4,row_number() over(partition by col1,col2 order by col3 desc) e from table1 where col5=『55』) t where e <= 2
以col1,col2 分組,然後根據col3降序排序 然後再取分組後的每組的前5條記錄
col1 col2 col3 e
a1 a2 c2 1
a1 a2 c1 2
a1 b2 c2 1
a1 b2 c1 2
a1 b3 c2 1
a1 b3 c1 2
.................................
a11 b3 c2 1
a11 b3 c1 2
................................
注:group by order by (1)先group 再order (2) order by中的列必須要在group by中
分組後取前N條
這種題目面試中經常出現,記錄一下 首先建表 create table students id int 11 not null auto increment comment 學號 clss id varchar 2 default null comment 班級id stu name varchar ...
SQL查詢每個分組的前N條記錄
if object id tempdb.dbo.t is not null drop table t create table t id varchar 3 gid int,author varchar 29 title varchar 39 date datetime insert into t ...
SQL查詢每個分組的前N條記錄
在寫乙個儲存過程中,遇到了乙個問題,自己寫的 sql總是執行效率太低,於是上網搜尋,學到了乙個新招,都怪自己平時不愛學習啊,不過這個語法真的很厲害。需求 取乙個表中每個 id的最新三條資料 按照更新時間倒序取 select from t as t where 3 select count from ...