我在MySQL数据库中有一个带有ID列的表。这不是表的键,多行可以具有相同的ID。
我真的不知道SQL,但我已经弄清楚如何获取不同ID的数量:
SELECT COUNT(DISTINCT ID) FROM mytable;
现在我想只计算那些在表格中出现2次以上的ID。
因此,如果ID列包含值
3 4 4 5 5 5 6 7 7 7
查询应返回2.
我不知道该怎么做。我希望有人可以帮助我!
顺便说一句,我的表包含大量行。因此,如果有多种可能性,我也很乐意知道哪种解决方案最有效。
答案 0 :(得分:5)
试试这个:
SELECT COUNT(ID) FROM (
SELECT ID FROM mytable
GROUP BY ID
HAVING COUNT(ID) > 2) p
答案 1 :(得分:1)
SELECT
COUNT(ids)
FROM
(SELECT
COUNT(ID)AS ids
FROM
mytable
GROUP BY
ID
HAVING
ids>2
)AS tbl1
答案 2 :(得分:1)
select count(*) from
(select count(id) as cnt,id from mytable group by id) da
where da.cnt>2
内部查询将为您提供每个id有多少个元素。外部查询将过滤此内容。
答案 3 :(得分:0)
更新:
SELECT count(ID)
FROM (
SELECT ID FROM mytable
GROUP BY ID
HAVING count(ID) > 2
) p
应该做你需要的事情