2016-09-25 63 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差異)。