我有一张星星测量表。每行(即测量值)包含星号的ID及其周期。
让我们说,例如:
Star_ID Period
1 3.6
1 3.9
2 4.11
2 4.12
2 8.5
3 7.1
4 1.31
4 1.32
我想编写一个查询,该查询仅返回具有“接近”时段的测量值的星号的Star_ID:包含2个满足P1-P2< X 。在我们的例子中,对于x = 0.02,它应该返回{2,4}。
任何人都可以帮助我吗?
非常感谢:)
答案 0 :(得分:1)
一种方法是使用自连接和聚合:
select t.star_id
from stars t join
stars t2
on t.star_id = t2.star_id and t.period <> t2.period
group by t.star_id
having min(abs(t.period - t2.period)) < 0.02;
注意:这将忽略两个重复的行(相差0)。