【发布时间】:2011-02-10 12:13:47
【问题描述】:
这是我在编写 SQL 查询时通常会遇到的情况。我认为在 GROUP BY 表达式中编写整个列(例如长大小写表达式、具有长参数的求和函数)而不是别名会使查询更长且可读性更低。为什么 Oracle SQL 不允许我们在 GROUP BY 子句中使用列别名?这背后一定有一个重要的原因。
【问题讨论】:
-
当然,在 Oracle 中,您可以使用子查询 - 例如
SELECT g, SUM(n) FROM (SELECT my-complicated-expression AS g, n FROM bla) GROUP BY g:) -
@JeffreyKemp。您应该将此作为答案发布。如果“不,你不能”的答案可以收集 21 票(在撰写本文时),那么“是的,你可以”的答案会更有价值!
-
我的评论并没有严格回答这个问题,它实际上只是一种解决方法。