資料來源:
insert into [dbo].[dept] ([id], [code], [name]) values (n'1', n'hex_1', n'張三')
gogo
insert into [dbo].[dept] ([id], [code], [name]) values (n'2', n'hex_2', n'lisi')
gogo
insert into [dbo].[dept] ([id], [code], [name]) values (n'3', n'hex_3', n'wangwu')
gogo
insert into [dbo].[dept] ([id], [code], [name]) values (n'4', n'hex_1', n'zhangsan')
gogo
insert into [dbo].[dept] ([id], [code], [name]) values (n'5', n'hex_2', n'里斯')
gogo
insert into [dbo].[dept] ([id], [code], [name]) values (n'6', n'hex_3', n'王五')
gogo
insert into [dbo].[dept] ([id], [code], [name]) values (n'7', n'hex_3', n'def')
業務:根據code 分組然後取出每組中的任意一行
select *from(
select
*, row_number () over (
partition by code
order by
code desc
) rowid
from
dept
) twhere
rowid = 1;
使用 partition by : 對多行資料分組後排序取每個產品的第一行資料
得到結果:
sql server 分組後,取每組前1條資料
sql 排名開窗函式 row number dense rank rank ntile屬於排名函式。排名開窗函式可以單獨使用order by 語句,也可以和partition by同時使用。partition by用於將結果集進行分組,開窗函式應用於每一組。oder by 指定排名開窗函式的順序。在...
sql server 分組,取每組的前幾行資料
sql中group by後,獲取每組中的前n行資料,目前我知道的有2種方法 比如有個成績表 裡面有欄位學生id,科目,成績。我現在想取每個科目的頭三名。1.子查詢 select from score s where studentname in select top 3 studentname fr...
sql server 分組,取每組的前幾行資料
sql中group by後,獲取每組中的前n行資料,目前我知道的有2種方法 比如有個成績表 裡面有欄位學生id,科目,成績。我現在想取每個科目的頭三名。1.子查詢 select from score s where studentname in select top 3 studentname fr...