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

时间:2016-11-04 13:10:54

标签: sql sql-server tsql

我有以下表格:

ID | Number | ... |
1  | 100    | ... |
1  | 200    | ... |
2  | 400    | ... |
2  | 300    | ... |
2  | 500    | ... |
3  | 600    | ... |

我正在尝试添加一个列,显示哪个记录包含最低Number值,按ID分组。

所以我的结果是:

ID | Number | ... | IsLowest
1  | 100    | ... | 1
1  | 200    | ... | 0
2  | 400    | ... | 0
2  | 300    | ... | 1 
2  | 500    | ... | 0
3  | 600    | ... | 1

有任何建议/想法吗?

1 个答案:

答案 0 :(得分:8)

使用min窗口功能。

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