SQL: As funções Greatest e Least [1/5]
Aumentando o cinto de utilidades em SQL para Análise de Dados
Disclaimer
Nesta série de 5 posts, gostaria de compartilhar com vocês alguns comandos que tive contato recentemente em SQL e que considero muito úteis! No Exemplo 2 deste artigo, utilizei uma amostra de dados do Spotify disponibilizada no Kaggle.
O que são os comandos GREATEST e LEAST?
O comando GREATEST seleciona o maior valor de uma lista ou de colunas diferentes, enquanto o comando LEAST seleciona o menor. Tendo isso em mente, observe os exemplos abaixo.
Exemplo 1: maior e menor valores de uma lista
Naturalmente, o GREATEST e o LEAST são muito adequados para quando precisamos saber o maior ou menor elemento de uma lista:
O resultado é respectivamente 5 e -1. Você pode testar esta função à vontade no próprio site da W3Schools.
Exemplo 2: maior e menor entre colunas
Temos uma lista de músicas mais ouvidas de 2017 do Spotify, e vamos supor que precisemos escolher o maior valor entre os campos danceability e energy de cada registro.
O GREATEST nos ajuda a resolver este cenário. Analogamente, o LEAST seleciona o menor valor entre esses dois campos. A consulta fica da seguinte forma:
Na figura abaixo temos o nosso resultado. O campo greatest (que não é a função, apenas o nome que dei ao campo) contém o maior valor entre danceability e energy, e o campo least o menor valor.
Exemplo 3: último evento
No exemplo abaixo, vamos supor que temos uma amostra de registros de um aplicativo de leitura de livros. Destaco os campos:
- reading_perc: percentual de leitura do livro em um dado momento
- created_at: tempo que indica quando o livro foi adicionado na estante de leitura virtual
- updated_at: tempo que indica a atualização do percentual de leitura do livro
- dropout_at: tempo que indica quando a leitura foi abandonada
Imagine que queremos saber, para cada livro e autor, a última vez que houve qualquer tipo de atualização relacionada à leitura do livro, seja abandono da leitura (indicado pelo campo dropout_at), atualização de avanço da leitura (updated_at) ou quando o leitor adicionou o livro à estante (created_at). A consulta fica:
Próximos passos
O GREATEST e o LEAST são muito utilizados quando se precisa trabalhar com vários campos de datas, por exemplo, em cenários que precisamos saber quando um evento aconteceu primeiro (LEAST) ou por último (GREATEST). Também são funções que comumente precisamos utilizar para saber o menor ou maior preço de um produto nos últimos dias.
Se você se interessa pelo tipo de assunto abordado neste post, no próximo falaremos sobre mais uma função muito útil em SQL: a Row Number.