如何在SQL列中找到重复N次的值?例如,假设我有一个值为fanta, sprite, sprite, sprite, cola, cola, cola, cabbages, cabbages, cabbages, cabbages
的列,我想找到重复3次的值,这些值应该返回sprite
和cola
,但不是fanta
或cabbages
,因为它们不会重复3次。
我尝试调整Find most frequent value in SQL column中的SQL:
SELECT value1, COUNT(value1) AS value1_count
FROM table1
GROUP BY value1
WHERE value1_count=3
但这给了我near "WHERE": syntax error:
,显然我做得不对。
编辑: Finding duplicate values in a SQL table被建议完全重复,但它是关于查找所有重复的值,无论重复多少次,但我承认那里的答案明显如何在我的案例中找到解决方案,所以我不知道。
答案 0 :(得分:2)
您可以使用Group by
+ Having
clause:
SELECT value1, COUNT(value1) AS value1_count
FROM table1
GROUP BY value1
HAVING COUNT(*) = 3
答案 1 :(得分:2)
要在GROUP BY
上应用条件,请使用HAVING
。
试试这个:
SELECT value1, COUNT(value1) AS value1_count FROM table1
GROUP BY value1
HAVING COUNT(value1) = 3
答案 2 :(得分:-1)
您必须将HAVING子句与聚合函数一起使用。以下是示例
<强> SQL FIDDLE 强>