以下查询为我提供了一行,因为b.id
已固定。我想要一个查询,我可以给出一组id并获得每个id的最小值行。
我想要的效果就好像我将这个查询包装在一个id集合的循环中,并执行查询,每个id为b.id = value
,但这将是(数十?)数千个查询。
select top 1 a.id, b.id, a.time_point, b.time_point
from orientation_momentum a, orientation_momentum b
where a.id = '00820001001' and b.id = '00825001001'
order by calculatedValue() asc
这是在sql-server上,但如果可能,我更喜欢便携式解决方案。
答案 0 :(得分:1)
SQL Server排名功能应该可以解决问题。
select * from (
select a.id, b.id, a.time_point, b.time_point,
rank() over (partition by a.id, b.id
order by calculatedValue() asc) ranker
from orientation_momentum a, orientation_momentum b
where a.id = '00820001001' and b.id between 10 and 20
) Z where ranker = 1