0

我有一个如下表,其中包含 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

请注意,该查询与其他 15 个轻量级查询一起每 2 秒执行一次。我也可以在 php 中进行处理,但更喜欢数据库查询,只要它不是性能密集型的。我正在尝试不同的查询,但无法获得一致的结果。有人可以帮忙吗?

非常感谢

4

1 回答 1

1

我在想这样的事情将是获得你想要的最快的方法:

select *
from t
where exists (select 1 from t t2 where t2.amount = t.amount and t2.frequency = 1)

这将在索引上运行得最快(amount, frequency)

于 2013-05-18T22:26:06.140 回答