如何使用别名,比如查询“按组”:集团通过别名(甲骨文)
select count(*), (select * from....) as alias_column
from table
group by alias_column
我得到“alias_column”:INVALID_IDENTIFIER错误消息。为什么?如何分组这个查询?
如何使用别名,比如查询“按组”:集团通过别名(甲骨文)
select count(*), (select * from....) as alias_column
from table
group by alias_column
我得到“alias_column”:INVALID_IDENTIFIER错误消息。为什么?如何分组这个查询?
select
count(count_col),
alias_column
from
(
select
count_col,
(select value from....) as alias_column
from
table
) as inline
group by
alias_column
如果您在GROUP BY子句中重复各自的表达式,则通常可以进行分组。仅仅提到一个别名是不可能的,因为SELECT步骤是发生查询执行的最后一步,分组发生在更早的时候,别名尚未定义。
对于GROUP BY子查询的结果,您将不得不稍微绕行并使用嵌套查询,如上所述。
巢与别名栏查询:
select count(*), alias_column
from
(select empno, (select deptno from emp where emp.empno = e.empno) as alias_column
from emp e
)
group by alias_column;
select count(*), (select * from....) as alias_column
from table
group by (select * from....)
在Oracle中,你不能在group by子句中使用别名。
要在Oracle中使用别名,您需要确保别名在您正在使用别名的位置由您的查询定义。
最直接的方式做,这是简单地把原来的查询作为子查询 - 在这种情况下,
select count(*), (select * from....) as alias_column
from table
group by (select * from....)
成为
select count, alias_column
from
(select count(*) as count, (select * from....) as alias_column
from table)
group by alias_column
我不能表现说话的含义,但如果你试图在查询中重新使用别名,它的写法会非常快 - 将所有内容都放在括号内并跳起一级...