实时聚合投影

存储对表列调用聚合函数(例如 SUM)的查询的分组结果。有关详细信息,请参阅实时聚合投影

语法

CREATE PROJECTION [ IF NOT EXISTS ] [[database.]schema.]projection
[ (
   { projection-column | grouped-clause
   [ ENCODING encoding-type ]
   [ ACCESSRANK integer ] }[,...]
) ]
AS SELECT { table-column | expr-with-table-columns }[,...] FROM [[database.]schema.]table [ [AS] alias]
   GROUP BY column-expr
   [ KSAFE [ k-num ] ]

参数

IF NOT EXISTS

如果存在同名对象,请不要创建它并继续。如果忽略此选项且对象存在,Vertica 将生成 ROLLBACK 错误消息。在上述两种情况下,如果对象已经存在,则不会创建它。

IF NOT EXISTS 子句适用于以下 SQL 脚本:可在某个对象不存在时创建该对象。

请参阅 ON_ERROR_STOP 了解相关信息。

[database.]schema

为该投影及其锚表指定架构,两者的 schema 必须相同。如果指定一个数据库,它必须是当前数据库。

projection

标识要创建的投影,其中 projection 符合 标识符中描述的约定。同一架构中的序列、表、投影、视图和模型中也必须是唯一的。

projection-column

投影列的名称。投影列的列表必须在数量、类型和顺序上与 SELECT 列表列和表达式相匹配。

如果省略投影列名称,Vertica 将使用在 SELECT 列表中指定的锚表列名称。

grouped-clause
请参阅GROUPED 子句
ENCODING encoding-type

编码类型,默认设置为 AUTO。

ACCESSRANK integer

覆盖列的默认访问等级。使用此参数可提高或降低 Vertica 访问列的速度。有关详细信息,请参阅覆盖默认的列等级

AS SELECT

指定要查询的表数据:

{table-column | expr-with-table-columns } [ [AS] alias] }[,...]

您可以选择性地为每个列表达式分配一个别名,并在 SELECT 语句的其他位置引用该别名。

GROUP BY column‑expr[,...]
SELECT 列表中的一个或多个列表达式。第一个 column-expr 必须是 SELECT 列表中的第一个列表达式,第二个 column-expr 必须是 SELECT 列表中的第二个列表达式,依此类推。

特权

非超级用户:

  • 锚表所有者

  • 对架构的 CREATE 权限

要求和限制

Vertica 不会将实时聚合投影视为 超投影,即使是包含所有表列的投影也是如此。有关其他要求和限制,请参阅创建实时聚合投影

示例

请参阅实时聚合投影示例