我有一个表,我想返回一个由另一个标识符分组的 MAX(id) 列表。但是,我有第三列,当它满足某个标准时,“胜过”不符合该标准的行。
用一个例子可能更容易解释。样品表有:
UniqueId (int) GroupId (int) IsPriority (位)
原始数据:
UniqueId GroupId IsPriority
-----------------------------------
1 1 F
2 1 F
3 1 F
4 1 F
5 1 F
6 2 T
7 2 T
8 2 F
9 2 F
10 2 F
因此,因为 groupId 1 中的任何行都没有设置 IsPriority,所以我们返回最高的 UniqueId (5)。由于 groupId 2 具有设置了 IsPriority 的行,因此我们返回具有该值 (7) 的最高 UniqueId。
所以输出将是:
5
7
我可以想办法强制执行此操作,但我想看看是否可以在单个查询中执行此操作。