O comando SQL abaixo, é super útil e você provavelmente ainda nao usa:
QUALIFY é tipo uma carta na manga. Depois que você descobre, começa a usar em todo lugar.
Pra que serve o QUALIFY?
1. Deixa as consultas mais simples
2. Torna o código mais fácil de entender
Apesar de ser considerado SQL “avançado”, ele simplifica muito as coisas.
Veja um exemplo. Normalmente, você faz algo assim:
• Usa uma função de janela(Window function) como ROW_NUMBER() ou RANK() para numerar suas linhas.
• Faz uma subconsulta com WHERE para pegar só a linha número 1.
Isso dá um trabalhão. Com QUALIFY, fica muito mais fácil:
• Simplesmente use QUALIFY!
A notícia ruim é que QUALIFY não está disponível em todas as versões de SQL nem em todos os sistemas de gerenciamento de banco de dados (SGBD). Atualmente, QUALIFY é suportado principalmente pelo Snowflake e pelo Teradata. Outros SGBDs populares, como PostgreSQL, MySQL, Oracle e SQL Server, não suportam QUALIFY.
Nesses casos, o jeito é seguir a abordagem tradicional e torcer para os SGBDs adicionarem o QUALIFY nas versões futuras!
Um exemplo de código SQL para mostrar a diferença: muito mais limpo e fácil de entender!
Sem QUALIFY
SELECT * FROM
( SELECT *, ROW_NUMBER() OVER (
PARTITION BY category ORDER BY date DESC)
ASC rownum FROM orders )
sub WHERE rownum = 1;
Com QUALIFY
SELECT *, ROW_NUMBER() OVER (PARTITION BY category ORDER BY date DESC) AS row_num
FROM orders
QUALIFY row_num = 1;