where 与 having 的区别

  1. having 需要配合 group by 使用,where 则不用
  2. where 可以按照条件先对数据进行筛选,然后进行数据连接,所以效率更高;而 having 则是对连接后的数据进行筛选,效率比较低(where 是先筛选后连接,having 是先连接后筛选
  3. having 可以在分组之后,通过使用分组中的计算函数,实现 where 难以完成的数据筛选