count 就是计算指定字段在查询结构中出现的个数 salary*2也不行
这边的count(1)也是107 相当于把一整个字段当作是一个数据 相当于有107个1
如果这边是count(2)的话 这边相当于是107个2
count的计算是不带null的
当查询公司中平均的奖金率的话需要除以全部员工 没有奖金的员工也要算到内
如何需要统计表中的记录数 使用count的哪个方法更有效率
group by的使用 查询各个部门的平均工资 最高工资
查询 各个department job的平均工资:
但是如果将job_id放前面的话 得到的结果一样
这种是错误的写法 因为按照部门来分的话 他的工种也就是job_id有很多种
也就是select上面有的下面也得有 下面有的select可以没有
with rollup
having的使用 (用来过滤数据的)
练习:查询各个部门中最高工资比10000高的部门信息
错误的写法
如果 过滤条件中使用了聚合函数 则必须使用having来替换where 否则会报错
但是改为having还报错
要求:having必须声明在group by的后面
开发中我们使用having的前提就是sql中使用了group by
方式一的执行效率高于方式二
where和having 的对比
sql底层执行原理
sql语句的执行过程