牛客网上的sql题
count函数后面跟*就可以正常获取返回值
但我把*改成gender也就是别名就提示无法找到gender这列,这是什么原因啊。求解答
因为别名是在select里面定义的,而count也写在select里面,它们在一个层级上,没有先后关系,所以会找不到别名
你写count(1)就行了,写count列名没有意义
因为gender别名是在select中申明的,并不在表结构中的,且和count同为select层级,所以无法找到
在group by中可以使用别名,但在SElECT字句中的聚合函数里面是不能写别名,
但是标准sql里面语句顺序是
先From子句
第二个就是where子句
第三执行的是group by
第四执行的是having
第五执行的是select字句
第六执行的是order by
这里group by可以使用别名感觉只是mysql数据库做了处理,但是不太符合标准sql语句的执行规范耶