有下表
PkId ProfileId Status Amount
1 234 0 10
2 235 1 100
3 236 0 50
4 236 1 80
5 237 0 70
对于第3行和第4行,配置文件ID相同,但我希望在结果集中它应考虑行的值为0,因此,无论我们有哪些配置文件ID相同的行,都应选择状态为= 0的行,对于其余行,应该按原样选择。
预期结果集:
PkId ProfileId Status Amount
1 234 0 10
2 235 1 100
3 236 0 50
5 237 0 70
在预期结果集中,必须省略第4行,因为:
答案 0 :(得分:0)
您可以在子选择上使用联接以获取最低状态
select * from my_table m
inner join (
select ProfileId , min(Status ) min_status
from my_table
group by ProfileId
) t on t.profileId = m.profileId and t.min_status = m.status