具有基于多行的条件的MySQL查询

具有基于多行的条件的MySQL查询,mysql,Mysql,我有一张有星星尺寸的桌子。 每行(即测量值)包含恒星的ID及其周期 比如说: 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 我想写一个查询,只返回具有多个相同周期测量值的恒星的星号。在我们的示例中,它应该返回{2,4} 有人能帮我吗 您可以使用group by和hav

我有一张有星星尺寸的桌子。 每行(即测量值)包含恒星的ID及其周期

比如说:

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
我想写一个查询,只返回具有多个相同周期测量值的恒星的星号。在我们的示例中,它应该返回{2,4}


有人能帮我吗

您可以使用group by和have

select Start_ID 
from my_table 
group by star_ID, Period 
having count(*) > 1
您可以获得所需的值 按
start\u id
Period
对行进行分组,并为此获取行数计数。。
然后,您可以使用“拥有并检查fo count(*)>1..

过滤结果。这里有另一个选项,它仅在
Star\u ID
列上执行
分组:

SELECT Star_ID
FROM yourTable
GROUP BY Star_ID
HAVING COUNT(*) - COUNT(DISTINCT Period) >= 1
按照下面的链接进行运行演示:


请简要解释,以便采购订单能够学到新的东西。如果该期间的情况更复杂?i、 而不是相等的周期-满足P1-P2