Funções de janela no Snowflake
Jake Roach
Field Data Engineer
Usado para realizar um cálculo em uma "janela" de linhas e retornar um valor para cada linha
$$
$$
Classificação
RANK, DENSE_RANKFIRST_VALUE, LAST_VALUE, NTH_VALUELAG, LEADAgregação
COUNT, SUM, AVGFunções de janela nos ajudam a responder novos tipos de perguntas!
$$
Função de agregação tradicional deve ter uma cláusula GROUP BY.


Não requerem GROUP BY!
SELECT
<other-fields>,
ROW_NUMBER() OVER(
ORDER BY <field>
) AS <alias>
FROM SCHEMA.table
...;
A função ROW_NUMBER() atribui um número de linha a cada registro no conjunto de resultados
$$
OVER() define a janelaGROUP BY!SELECT
customer_id,
event_name,
-- Atribua um número de linha a cada
-- registro no conjunto de resultados
ROW_NUMBER() OVER(
ORDER BY time_spent_minutes
) AS row_num
FROM concerts.attendance;
customer_id | event_name | row_num
------------- | ------------ | ---------
1931292 | Music Fest | 1
5462384 | Elton John | 2
7732891 | Coachella | 3
3124888 | Porch Fest | 4
$$
$$
Lembre-se da sintaxe: ROW_NUMBER() OVER( ORDER BY ...)!
Funções de janela no Snowflake