如何将MySQL查询结果限制在前三名

如何将MySQL查询结果限制在前三名,mysql,Mysql,我试图让这个数据库查询只返回3个最常见的状态,但不知何故,我一直以降序列出返回的所有状态。不知道我哪里出错了 SELECT state, COUNT(*) as count FROM Contact GROUP BY state HAVING state NOT IN(' ') ORDER BY COUNT(*) DESC LIMIT 3 我认为你没有正确地使用have 我只想使用这个查询 SELECT state, COUNT(1) AS state_count FROM Contact W

我试图让这个数据库查询只返回3个最常见的状态,但不知何故,我一直以降序列出返回的所有状态。不知道我哪里出错了

SELECT state, COUNT(*) as count
FROM Contact
GROUP BY state
HAVING state NOT IN(' ')
ORDER BY COUNT(*) DESC
LIMIT 3

我认为你没有正确地使用
have

我只想使用这个查询

SELECT state, COUNT(1) AS state_count
FROM Contact
WHERE state <> ' '
GROUP BY state
ORDER BY state_count DESC
LIMIT 3
选择状态,将(1)计数为状态\u计数
从接触
何处州“
按州分组
按州排序\u计数说明
限制3

演示~

查询看起来不错,如果可能的话,您能提供一些示例数据吗?看起来您的查询实际上运行良好~@user1218172您的查询运行良好。为什么这对你不起作用?@user1218172我不完全确定你最初的查询为什么不起作用。在我链接的演示中看起来不错