SQL Server - 标记具有最低值的记录的列

Den*_*ent 2 sql t-sql sql-server

我有以下表格:

ID | Number | ... |
1  | 100    | ... |
1  | 200    | ... |
2  | 400    | ... |
2  | 300    | ... |
2  | 500    | ... |
3  | 600    | ... |
Run Code Online (Sandbox Code Playgroud)

我试图添加一个列,显示哪个记录保持最低Number值,按ID分组.

所以我的结果是:

ID | Number | ... | IsLowest
1  | 100    | ... | 1
1  | 200    | ... | 0
2  | 400    | ... | 0
2  | 300    | ... | 1 
2  | 500    | ... | 0
3  | 600    | ... | 1
Run Code Online (Sandbox Code Playgroud)

有什么建议/想法?

Vam*_*ala 8

使用min窗口功能.

select id,number,
case when min(number) over(partition by id) = number then 1 else 0 end is_lowest
from t
Run Code Online (Sandbox Code Playgroud)