Função de janela NTH_VALUE - Amazon Redshift

Função de janela NTH_VALUE

A função de janela NTH_VALUE retorna o valor de expressão da linha especificada do quadro da janela em relação à primeira linha da janela.

Sintaxe

NTH_VALUE (expr, offset) [ IGNORE NULLS | RESPECT NULLS ] OVER ( [ PARTITION BY window_partition ] [ ORDER BY window_ordering frame_clause ] )

Argumentos

expr

A coluna ou expressão de destino na qual a função opera.

deslocamento

Determina o número de linha relativo a primeira linha na janela para a qual retornar a expressão. O deslocamento pode ser uma constante ou uma expressão e deve ser um inteiro positivo que seja maior que 0.

IGNORE NULLS

Uma especificação opcional que indica que o Amazon Redshift deve ignorar valores nulos na determinação de qual linha usar. Valores nulos são incluídos se IGNORE NULLS não for listada.

RESPECT NULLS

Indica que o Amazon Redshift deve incluir valores nulos na determinação de qual linha usar. RESPECT NULLS é compatível por padrão se você não especificar IGNORE NULLS.

OVER

Especifica o particionamento da janela, ordem e quadro da janela.

PARTITION BY window_partition

Define o intervalo de registros para cada grupo na cláusula OVER.

ORDER BY window_ordering

Classifica as linhas dentro de cada partição. Se ORDER BY for omitido, o quadro padrão consiste em todas as linhas na partição.

frame_clause

Se uma cláusula ORDER BY é usada para uma função agregada, uma cláusula de quadro explícita é necessária. A cláusula de quadro refina o conjunto de linhas na janela de uma função, incluindo ou excluindo conjuntos de linhas no resultado ordenado. A cláusula de quadro consiste na palavra-chave ROWS e nos especificadores associados. Consulte Resumo da sintaxe de funções da janela.

A função da janela NTH_VALUE é compatível com expressões que usam qualquer um dos tipos de dados do Amazon Redshift. O tipo de retorno é igual ao tipo de expr.

Exemplos

O seguinte exemplo mostra o número de assentos no terceiro maior local de eventos na Califórnia, Flórida e Nova Iorque, comparados ao número de assentos em outros locais de evento nesses estados:

select venuestate, venuename, venueseats, nth_value(venueseats, 3) ignore nulls over(partition by venuestate order by venueseats desc rows between unbounded preceding and unbounded following) as third_most_seats from (select * from venue where venueseats > 0 and venuestate in('CA', 'FL', 'NY')) order by venuestate; venuestate | venuename | venueseats | third_most_seats ------------+--------------------------------+------------+------------------ CA | Qualcomm Stadium | 70561 | 63026 CA | Monster Park | 69843 | 63026 CA | McAfee Coliseum | 63026 | 63026 CA | Dodger Stadium | 56000 | 63026 CA | Angel Stadium of Anaheim | 45050 | 63026 CA | PETCO Park | 42445 | 63026 CA | AT&T Park | 41503 | 63026 CA | Shoreline Amphitheatre | 22000 | 63026 FL | Dolphin Stadium | 74916 | 65647 FL | Jacksonville Municipal Stadium | 73800 | 65647 FL | Raymond James Stadium | 65647 | 65647 FL | Tropicana Field | 36048 | 65647 NY | Ralph Wilson Stadium | 73967 | 20000 NY | Yankee Stadium | 52325 | 20000 NY | Madison Square Garden | 20000 | 20000 (15 rows)