PIVOT

Translation specification for the PIVOT function form Teradata to Snowflake

Description

The pivot function is used to transform rows of a table into columns. For more information check the PIVOT Teradata documentation.

PIVOT ( pivot_spec )
  [ WITH with_spec [,...] ]
  [AS] derived_table_name [ ( cname [,...] ) ]
  
pivot_spec := aggr_fn_spec [,...] FOR for_spec

aggr_fn_spec := aggr_fn ( cname ) [ [AS] pvt_aggr_alias ]

for_spec := { cname IN ( expr_spec_1 [,...] ) |
( cname [,...] ) IN ( expr_spec_2 [,...] ) |
cname IN ( subquery )
}

expr_spec_1 := expr [ [AS] expr_alias_name ]

expr_spec_2 := ( expr [,...] ) [ [AS] expr_alias_name ]

with_spec := aggr_fn ( { cname [,...] | * } ) [AS] aggr_alias

Sample Source Patterns

Setup data

Teradata

Snowflake

Basic PIVOT transformation

Teradata

Snowflake

PIVOT with aliases transformation

Teradata

Snowflake

Known Issues

1. WITH clause not supported

Using the WITH clause is not currently not supported.

2. Pivot over multiple pivot columns not supported

Snowconvert is transforming the PIVOT function into the PIVOT function in Snowflake, which only supports applying the function over a single column.

3. Pivot with multiple aggregate functions not supported

The PIVOT function in Snowflake only supports applying one aggregate function over the data.

4. Subquery in the IN clause not supported

The IN clause of the Snowflake PIVOT function does not accept subqueries.

5. Aliases only supported if all IN clause elements have it and table specification is present

For the column names with aliases to be equivalent, SnowConvert requires that all the values specified in the IN clause have one alias specified and the table specification is present in the input code, this is necessary so SnowConvert can successfully create the alias list for the resulting table.

  1. MSCEWI1015: The input pivot/unpivot statement form is not supported

Last updated

Was this helpful?