mysql筛选--where和having的区别

where和having都可以实现筛选

区别:
在涉及到分组筛选时,即sql语句中有group by时

group by子句前面用where筛选,且where的数据源是原始表

group by子句后面用having筛选,且having的数据源是分组后的结果集
mysql筛选--where和having的区别
举个例子:如上图筛选出每种工作的工资的最大值

where后面的子句中的commission_pct是原始表employees中就有的字段

having后面的分组函数max(salary)在原始表格中没有,是根据job_id分组后的结果集。