mysql语法查询。有和在哪里有什么区别

mysql语法查询。有和在哪里有什么区别,mysql,Mysql,为什么我们不能在这个程序中使用where?为什么只有键是唯一被接受的东西?为了简化:在之前使用的地方使用GROUP BY子句来过滤行具有在分组依据之后使用,可以访问分组依据语句的“结果”。请参阅以下文档: HAVING子句与WHERE子句一样,指定了选择条件。WHERE子句指定select列表中列的条件,但不能引用聚合函数。HAVING子句指定组的条件,通常由groupby子句组成。查询结果仅包括满足条件的组。(如果不存在分组依据,则所有行隐式形成一个聚合组。) 这就是为什么不能使用WHERE子

为什么我们不能在这个程序中使用
where
?为什么只有
是唯一被接受的东西?

为了简化:
之前使用
的地方使用
GROUP BY
子句来过滤行<代码>具有
分组依据
之后使用,可以访问
分组依据
语句的“结果”。请参阅以下文档:

HAVING
子句与
WHERE
子句一样,指定了选择条件。
WHERE
子句指定select列表中列的条件,但不能引用聚合函数。
HAVING
子句指定组的条件,通常由
groupby
子句组成。查询结果仅包括满足条件的组。(如果不存在
分组依据
,则所有行隐式形成一个聚合组。)


这就是为什么不能使用
WHERE
子句访问
sum(salary)表达式中的
total
,但可以使用
HAVING
子句访问它,该子句在
sum(salary)的结果之后应用
进行计算,并应用
GROUP BY
子句。

其中为SELECT,HAVING为GROUP。这是语法的定义。
create table employee(empid int,empname varchar(20),salary int, month varchar(20));
select empid,sum(salary) as total from employee group by empid **where** total>25000;