2016-09-25 28 views
1

我有一個星表的測量表。 每一行(即一個度量)都包含星號和星期。基於多行的條件的MySQL查詢

比方說,例如:

Star_ID Period 
1   4.1 
1   3.6 
2   4.1 
2   4.1 
2   8.7 
3   2.5 
4   1.3 
4   1.3 

我想寫一個返回Star_ID唯一具有一個以上的測量與同時期的明星的查詢。在我們的例子中,它應該返回{2,4}。

任何人都可以幫助我嗎?

回答

0

這裏是另一種選擇僅在Star_ID柱,其只是做一個GROUP BY

SELECT Star_ID 
FROM yourTable 
GROUP BY Star_ID 
HAVING COUNT(*) - COUNT(DISTINCT Period) >= 1 

按照以下鏈接的運行演示:

SQLFiddle

2

您可以使用基和具有

select Start_ID 
from my_table 
group by star_ID, Period 
having count(*) > 1 

您可以通過start_idPeriod併爲此獲得的行數..的計數獲得所需的值 分組行 那麼你可以過濾使用具有和檢查FO計數的結果(*)> 1 ..

+0

在短暫請解釋一下,這樣的PO可以學到新的東西。 – 1000111

+0

如果期限的條件更復雜?即代替等於週期滿足P1-P2 Tomer

+0

我有更新.. – scaisEdge