0

b.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上にありますが、可能であればポータブルソリューションをお勧めします。

4

1 に答える 1

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
于 2012-10-02T01:21:44.687 に答える