Top-k projection
Stores the top k rows from partitions of selected rows. For details, see Top-k projections.
Vertica does not regard Top-K projections as superprojections, even those that include all table columns. For other requirements and restrictions, see Creating top-k projections.
Syntax
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]
   LIMIT num-rows OVER ( window-partition-clause window-order-clause )
   [ KSAFE [ k-num ] ]
Arguments
- IF NOT EXISTS
- If an object with the same name exists, return without creating the object. If you do not use this directive and the object already exists, Vertica returns with an error message. - The - IF NOT EXISTSclause is useful for SQL scripts where you might not know if the object already exists. The ON ERROR STOP directive can be helpful in scripts.
- [- database- .]- schema
- Schema for this projection and its anchor table. The value must be the same for both. If you specify a database, it must be the current database. 
- projection
- Name of the projection to create, which must conform to Identifiers. It must also be unique among all names of sequences, tables, projections, views, and models within the same schema. 
- projection-column
- The name of a projection column. The list of projection columns must match the SELECT list columns and expressions in number, type, and sequence. - If projection column names are omitted, Vertica uses the anchor table column names specified in the SELECT list. 
- grouped-clause
- See GROUPED clause.
- ENCODING- encoding-type
- The column encoding type, by default set to AUTO. 
- ACCESSRANK- integer
- Overrides the default access rank for a column. Use this parameter to increase or decrease the speed at which Vertica accesses a column. For more information, see Overriding Default Column Ranking. 
- AS SELECT
- Specifies the table data to query: - {table-column | expr-with-table-columns } [ [AS] alias] }[,...]- You can optionally assign an alias to each column expression and reference that alias elsewhere in the SELECT statement. - If you specify projection column names, the two lists of projection columns and table columns/expressions must exactly match in number and order. 
- LIMIT- num-rows
- The number of rows to return from the specified partition.
- OVER (- window-partition-clause- window-order-clause- )
- Specifies window partitioning by one or more comma-delimited column expressions from the SELECT list.  The first partition expression must be the first SELECT list item, the second partition expression the second SELECT list item, and so on.
The order clause is required, and specifies the order in which the top krows are returned. The default is ascending (ASC) order. All column expressions must be from the SELECT list, where the first window order expression must be the first SELECT list item not specified in the window partition clause.Top-K projections support ORDER BY NULLS FIRST/LAST. 
Privileges
Non-superusers:
- 
Anchor table owner 
- 
CREATE privilege on the schema