2016-09-25 67 views
-1

我有一张带有星星测量值的表格。每行(即一个度量)包含星号和星期。基于不同行的条件下的MySQL查询

比方说,例如:

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唯一具有测量结果与“亲密”时期的明星的查询:满足P1-P2包含2个周期明星< x。在我们的例子中,对于x = 0.02,它应该返回{2,4}。

任何人都可以帮助我吗?

感谢了很多:)

+1

所以你开始写一个查询,如果它不起作用请求帮助您的查询** SO!==免费查询编码** – RiggsFolly

+1

那么在形式上我错了___SO ===免费查询编码here___ – RiggsFolly

+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差异)。