SQL中having不应该是在select之前执行吗

请看这条语句:在表table中以title分组并获得每组的个数。
最后的HAVING t>2这条我不理解,having的执行顺序在select之前,
而列“t”定义在select子句中,那么t在定义之前就使用不会出错吗?
(下面这条语句是正确的)

SELECT title, COUNT(title) AS t FROM table
GROUP BY title HAVING t >= 2

全部评论
我之前也有跟你一样的疑惑,https://segmentfault.com/q/1010000004921183,你看看这个解释,应该是不同的数据库处理方式不同,在mysql下你这条语句可以通过,而sqlserver下不能通过。
点赞 回复 分享
发布于 2017-11-06 10:42
查了半天也没啥结果 mysql就是这样规定的,可以在having中使用别名 select只是选出这些列,说明在select之前这些列都已经有了,可能不是在执行select的时候才去定义这些个别名吧。。。。。 大神出来辟谣吧
点赞 回复 分享
发布于 2017-11-06 11:33

相关推荐

点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务