Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 仅在点击次数超过2次的查询中显示结果_Mysql_Sql - Fatal编程技术网

Mysql 仅在点击次数超过2次的查询中显示结果

Mysql 仅在点击次数超过2次的查询中显示结果,mysql,sql,Mysql,Sql,还没有找到解决办法- 假设这是查询的结果: ID, SUBS, DATE . 19967,142, 2017-06-15 . 20214,147, 2017-05-09 . 20214,137, 2017-06-07 . 20303,147, 2017-05-31 . 我只想要ID超过1次的记录,但我确实想要2个或更多的记录,所以不需要分组 如何操作查询?假设日期不同,您可以使用exists: select t.* from t where exists (select 1

还没有找到解决办法-

假设这是查询的结果:

ID, SUBS, DATE . 
19967,142, 2017-06-15 . 
20214,147, 2017-05-09 .
20214,137, 2017-06-07 . 
20303,147, 2017-05-31 .  
我只想要ID超过1次的记录,但我确实想要2个或更多的记录,所以不需要分组

如何操作查询?

假设日期不同,您可以使用exists:

select t.*
from t
where exists (select 1
              from t t2
              where t2.id = t.id and t2.date <> t.date
             );

根据问题的上下文,我将2以上解释为实际上是2或更多。否则就需要进行聚合。

您必须分两个步骤进行聚合-一个步骤确定哪些ID具有倍数,另一个步骤选择它们

有很多方法可以做到这一点;在此版本中,对具有倍数的ID进行计数,然后单独选择数据

根据我过时的经验,大的一组可能会很慢。如果这个列表非常庞大,那么使用一个临时表来存储结果以便对其进行索引是有意义的。无论如何,id上的索引似乎只能起到帮助作用

从t中选择t.*,其中t.id在select id中,从c>1的t中计算*c

创建一个表,其中显示名为sumRecords的记录的出现次数,并将sumRecords与where occurrence>1的约束左连接

我指的是您的临时表,代码如下:

SELECT temp.* FROM 
temp LEFT JOIN 
(SELECT ID, COUNT(*) occurance
FROM temp
GROUP BY ID) sumRecords ON temp.ID = sumRecords.ID
WHERE sumRecords.occurance > 1
结果:

ID      subs     dat
20214   147     2017-05-09
20214   137     2017-06-07

选择*FROM test,其中id在SELECT id FROM test GROUP BY id中,COUNTid>1

什么疑问?除了一些未格式化的结果之外,您没有显示任何内容。我格式化了它,但仍然不确定你在问什么对不起,我不太熟悉这里的格式,希望这是更好的。。。恕我直言,像这样的查询将包括一个SQL FIDLE或与之相当的示例数据和查询。照目前的情况,我们无法在不构成表和查询的情况下向您展示针对数据的真正查询。我想知道这是否比枚举不同的表和查询更快。不确定是比较日期还是计算我的答案更有效。你可以尝试两者进行比较,但如果在tid上有一个索引,这应该会更快,日期。