SQL: As funções Greatest e Least [1/5]

Aumentando o cinto de utilidades em SQL para Análise de Dados

Erica Bertan
Computando Arte
3 min readJul 21, 2021

--

Photo by Hendrik Cornelissen on Unsplash

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.

Preview de algumas faixas de música do dataset Top Spotify Tracks of 2017.

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:

  1. reading_perc: percentual de leitura do livro em um dado momento
  2. created_at: tempo que indica quando o livro foi adicionado na estante de leitura virtual
  3. updated_at: tempo que indica a atualização do percentual de leitura do livro
  4. 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:

Última atualização de percentual de leitura de cada livro e autor.

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.

--

--

Erica Bertan
Computando Arte

Love to learn and sometimes I write when I’m inspired. Data Engineer @ Loggi