在mysql中使用别名不起作用
我被在mysql中使用别名不起作用,mysql,Mysql,我被别名的用法弄糊涂了。例如,下面的查询工作正常 select * from ( select ROW_NUMBER() over (partition by prodid order by quantity desc) as 'rankin',prodid,quantity from sales ) A where rankin=1 但当我修改它时,如下面的代码段所示,我得到了错误:“无效的列名‘rownumber’” 请解释差异。这是因为SELECT是在WHERE之后执行的,而FROM是
别名的用法弄糊涂了。例如,下面的查询工作正常
select * from
(
select ROW_NUMBER() over (partition by prodid order by quantity desc) as 'rankin',prodid,quantity from sales
) A
where rankin=1
但当我修改它时,如下面的代码段所示,我得到了错误:“无效的列名‘rownumber’”
请解释差异。这是因为SELECT
是在WHERE
之后执行的,而FROM
是在WHERE
之前执行的,因此它不能在第二次查询中使用,但可以在第一次查询中使用。Erm,在哪个版本的mysql
没有行号()超过
?
select ROW_NUMBER() over (order by quantity) as 'rownumber' from sales
where rownumber = 1