我有一个表格如下,有3列数量,频率和&标识符。所有这些记录都在同一个数据库的同一个表中。
amount frequency identifier
4.75 1 100
4.75 3 101
4.76 2 102
4.76 3 103
4.44 1 104
4.43 1 105
4.75 2 106
4.67 2 107
4.75 3 108
4.64 2 109
4.64 3 110
4.65 4 111
我正在执行一个sql查询,它应该为不同的频率拾取重复的记录,但其中一个的频率必须等于1.所以我期待的输出是
amount frequency identifier
4.75 1 100
4.75 3 101
4.75 2 106
4.75 3 108
请注意,查询每2秒执行一次,还有15个其他轻量级查询。我也可以在php中进行处理,但是更喜欢数据库查询这么长时间它不是性能密集型的。我正在尝试不同的查询,但无法获得一致的结果。有人可以帮忙吗?
非常感谢
答案 0 :(得分:1)
我认为这样的事情是获得你想要的最快方式:
select *
from t
where exists (select 1 from t t2 where t2.amount = t.amount and t2.frequency = 1)
这将使用(amount, frequency)
上的索引运行得最快。