Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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 选择计数(*)所在的id>;X?-如何从表中有超过X条记录的任何用户处获取记录?_Mysql_Count_Subquery - Fatal编程技术网

Mysql 选择计数(*)所在的id>;X?-如何从表中有超过X条记录的任何用户处获取记录?

Mysql 选择计数(*)所在的id>;X?-如何从表中有超过X条记录的任何用户处获取记录?,mysql,count,subquery,Mysql,Count,Subquery,显然,标题中的查询不起作用,但它可能以一种天真的方式说明了我想做什么。我有一个表,其中包含一些由id列标识的用户。此id在数据库中不是唯一的。它标记可能在我的表中有多条记录的用户 如何显示表中有10条以上记录的所有用户(由id标识)的整个记录?以下是如何显示的: CREATE TABLE mytable_clean AS SELECT * FROM mytable WHERE id IN( SELECT id FROM (SELECT id,COUNT(*) AS appearance

显然,标题中的查询不起作用,但它可能以一种天真的方式说明了我想做什么。我有一个表,其中包含一些由id列标识的用户。此id在数据库中不是唯一的。它标记可能在我的表中有多条记录的用户

如何显示表中有10条以上记录的所有用户(由id标识)的整个记录?

以下是如何显示的:

 CREATE TABLE mytable_clean AS
 SELECT * FROM mytable WHERE id IN(
 SELECT id FROM
 (SELECT id,COUNT(*) AS appearance 
 FROM mytable
 GROUP BY id) AS id_count
 WHERE id_count.appearance > 9 )

它确实有效。它不慢,但在我看来有点笨拙。欢迎使用更好的解决方案:)

使用拥有而不是其中的

SELECT id
  FROM (
        SELECT id, COUNT(*) as cnt
        FROM sowewhere 
        GROUP BY id
        HAVING cnt > 1
   ) temp_table

如果您只需要id,请从一开始就删除COUNT(*),但我将其放在那里是为了显示表中每个id的总数。我真的不知道为什么,但与我的相比,这真的很长。@ran2-long?什么意思?慢,该死。我不知道我当时在想什么。也许我想写的时间比我的长。不过,猜对了;)这里的这个查询速度非常快,结果与我的查询完全相同。虽然它当然更优雅;)。为什么与Ishtar的方法相比,这个微小的差异会导致如此大的差异?这与我的方法完全相同,只是我的方法没有额外的SELECT语句。为什么需要额外的SELECT?我不需要它,它只允许您使用最外层的SELECT按非聚合列排序。
SELECT id, COUNT(*) FROM Table GROUP BY id HAVING COUNT(*) > 10
SELECT * FROM user 
WHERE id IN (SELECT id FROM user GROUP BY id HAVING COUNT(*) > 10)