SELECT id WHERE COUNT(*)> X ? - 如何从表中包含超过X条记录的任何用户获取记录?

时间:2011-02-01 15:53:08

标签: mysql count subquery

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

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

4 个答案:

答案 0 :(得分:6)

使用 代替

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

答案 1 :(得分:2)

SELECT * FROM user 
WHERE id IN (SELECT id FROM user GROUP BY id HAVING COUNT(*) > 10)

答案 2 :(得分:1)

SELECT id, COUNT(*) FROM Table GROUP BY id HAVING COUNT(*) > 10

答案 3 :(得分:0)

这是如何:

 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 )

确实有效。这不是要慢,但对我来说看起来有点笨拙。更好的解决方案欢迎:)