我有下面的查找表:在SQL中,如何通过其他列选择列和组的最小值?
id ref order
1 6 0
2 6 0
3 7 0
5 34 0
6 33 0
6 255 1
9 12 0
9 80 1
12 7 0
12 76 1
13 10 0
15 12 0
16 6 0
16 7 1
17 6 1
17 63 0
18 7 0
19 7 1
19 75 0
20 6 0
20 63 1
在查找表(tab_lkp)
所以,它具有柱[ID](实体的ID),[参考文献](基准ID指向其他实体在另一个表中)和[顺序](告诉参考顺序,较小的顺序意味着较高的优先级)。
我的期望是,对于每个ID,只选择一个具有最小顺序的参考。我的代码是(按照Phil's answer):
select id
, ref
, min_order = min(order)
from [dbo].[tab_lkp]
group by id, ref
order by id, ref
但代码不为我工作,结果还是包含每个ID的多个记录:
id ref order
1 6 0
2 6 0
3 7 0
5 34 0
6 33 0
6 255 1
9 12 0
9 80 1
12 7 0
12 76 1
13 10 0
15 12 0
16 6 0
16 7 1
17 6 1
17 63 0
18 7 0
19 7 1
19 75 0
20 6 0
20 63 1
可否请你让我知道我的代码有什么问题?我该如何实现自己的目标?
标记DBMS以获得更好的响应 – JohnHC
同样,按'ref'分组,所以如果一个id有多个'ref' falues,它将返回所有这些。请显示预期的输出 – JohnHC