mysql在where条件下按列分组使用

mysql在where条件下按列分组使用,mysql,group-by,aggregate-functions,mysql-error-1111,Mysql,Group By,Aggregate Functions,Mysql Error 1111,如何使此查询生效: SELECT column1.....,SUM(Hits) AS Hits FROM table WHERE SUM(Hits) > 100 GROUP BY column1..... 问题是where子句,mysql显示错误: Error Code : 1111 Invalid use of group function 我尝试将查询更改为: SELECT column1.....,SUM(Hits) AS Hits FROM table

如何使此查询生效:

SELECT column1.....,SUM(Hits) AS Hits   
FROM table 
WHERE  SUM(Hits) > 100
GROUP BY column1.....
问题是where子句,mysql显示错误:

Error Code : 1111
Invalid use of group function
我尝试将查询更改为:

 SELECT column1.....,SUM(Hits) AS Hits   
    FROM table 
    WHERE  Hits > 100
    GROUP BY column1.....
这没有帮助


感谢出现错误的原因是,在
WHERE
子句中,您不能使用聚合函数,或使用聚合函数对派生列使用列别名。这些只能在
HAVING
子句中使用,该子句需要定义
GROUP BY
子句(如果它不存在)

我不建议在
GROUP BY
中使用列别名,或在
中使用
子句-存在查询无法移植到其他数据库的风险。据我所知,SQL Server是唯一一个支持
GROUP BY
中包含
子句的列别名的数据库

  SELECT t.column1....., SUM(t.hits) AS HitsSum 
    FROM TABLE t
GROUP BY t.column1.....
  HAVING SUM(t.hits) > 100
SELECT column1.....,SUM(Hits) AS Sum_Hits   
FROM table 
GROUP BY column1.....
HAVING Sum_Hits > 100
  SELECT t.column1....., SUM(t.hits) AS HitsSum 
    FROM TABLE t
GROUP BY t.column1.....
  HAVING SUM(t.hits) > 100