选择非重复记录

梅迪

我有一张约有5000万条记录的表。

表结构如下所示,并且对calleridcall_start字段都建立了索引。

id-来电显示-call_start

我想选择整个表中其call_start大于'2013-12-22'并且在'2013-12-22'之前不重复显示callerid的所有记录。

我用了这样的东西:

SELECT DISTINCT 
  ca.`callerid` 
FROM
  call_archives AS ca 
WHERE ca.`call_start` >= '2013-12-22' 
  AND ca.`callerid` NOT IN 
  (SELECT DISTINCT 
    ca.`callerid` 
  FROM
    call_archives AS ca 
  WHERE ca.`call_start` < '2013-12-21')

但这非常慢,任何建议都非常感谢。

瓦莱克斯

只是好奇这个查询在您的表上是否快速运行:

SELECT ca.`callerid` 
FROM call_archives 
GROUP BY ca.`callerid` 
HAVING MIN(ca.`call_start`) >='2013-12-22' 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章