问题描述
- 为了表示 CTE(通用表表达式)子句,创建一个用于当前查询的临时表,以及
- 在 CTAS (CREATE TABLE AS) 语句中指定属性,例如Presto、AWS Athena、Cloudera 等
但是,在阅读长查询时,我有好几次都难以立即将这两种用法区分开来,我一直在想,如果为这两者之一使用另一个词会更有意义,以提高可读性并避免歧义。
所以我的问题是:这两种用法是否有某种关联?它们是否源于某个共同的根源?
解决方法
他们根本没有关系。 WITH
是一种类似于子查询的句法结构。另一个用于其他目的。
BY
和 GROUP BY
中的 ORDER BY
的类比。或者 AND
用于 BETWEEN
并作为独立的布尔运算符。他们只是碰巧有相同的名字。