显然标题中的查询不起作用,但它可能以一种天真的方式说明,我想做什么。我有一个表,其中包含由id列标识的一些用户。此ID在数据库中不是唯一的。它标记的用户可能在我的表中有多个记录。
如何显示我的表中包含10条以上记录的所有用户(由id标识)的整个记录?
答案 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 )
确实有效。这不是要慢,但对我来说看起来有点笨拙。更好的解决方案欢迎:)