oracle - 为什么 Oracle 不支持 "group by 1,2,3"?

标签 oracle group-by

<分区>

Oracle 不像 MySQL/PostgreSQL 那样支持“按 1,2,3 分组”的语法,这真的很不方便,有人知道为什么 Oracle 不想支持这个吗?这应该不难吧?

最佳答案

实际上,按照常识,列别名只能在 ORDER BY 或外部查询中使用。因为,当您执行 ORDER by 时,它仅在行选择之​​后发生,到那时别名可用。但是在 GROUP BY 期间,只有在分组之后才完成选择,所以在分组完成之前,oracle 不知道列别名。

我认为,这非常简单。可能是其他 DBMS 支持它们,实现一些 SQL 预处理。

因此,简而言之,由于 SELECT 仅在 GROUP BY 之后发生,并且列别名仅在 SELECT 中生成,因此 oracle 不会支持吧!程序员也明白这一点,可能不需要在分组中使用列别名。至少我。

关于oracle - 为什么 Oracle 不支持 "group by 1,2,3"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20796143/

相关文章:

python - 如何控制 Pandas 中每小时的 GROUPBY 设置?

group-by - 在 Pyspark 中展平分组

java - 将一组列从一个表复制到另一个表

python - 使用 cx_Oracle 更改模式

sql - 有没有更好的方法来过滤每个组中存在的数据?

php - 我可以使用 GROUP BY (MySql) 选择最短的字段名称吗

java - 在 postgresql 中使用 group by 选择某些格式

sql - 如何用 SQL 表示关系除法(基本代数表达式)

.net - Oracle 的 Sql 分析器

java - 奇怪的 SQL 浪费我的资源