【问题标题】:Help with a select count query帮助选择计数查询
【发布时间】:2023-09-02 23:11:01
【问题描述】:

我想显示所有拥有count > 5 的城市。我试图将结果限制在 5 以上,但它不起作用。

SELECT
user.city,
Count(user.city) AS cnt
FROM user
Inner Join zip ON zip.zip = user.zip
WHERE cnt > 5
GROUP BY user.city
WHERE cnt > 5 **<--------------- It fails here**

cnt 已在字段列表中定义,为什么不起作用?

【问题讨论】:

    标签: sql mysql mysql-error-1111


    【解决方案1】:

    【讨论】:

    • +1:另外,GROUP BY/HAVING 是最早可以在 MySQL(和 SQL Server)中使用的列别名,但 ORDER BY 是最早用于标准 SQL 的。
    【解决方案2】:

    试试HAVING

    SELECT  user.city,
            COUNT(user.city) AS cnt
    FROM user
    INNER JOIN zip ON zip.zip = user.zip
    GROUP BY user.city
    HAVING COUNT(user.city) > 5
    

    【讨论】:

      【解决方案3】:

      尝试使用 HAVING 语句:

      例如:

      select title, AVG(salary)
      from employee_data
      GROUP BY title 
      HAVING AVG(salary) > 100000;
      

      【讨论】: