SQL Server 2022 – Função GREATEST()

DBA e Consultor de Banco de Dados

SQL Server 2022 – Função GREATEST()

Tempo de leitura: 5 minutos

Olá amigos do Blog,

Depois de um longo tempo sem postar nada por aqui estamos de volta!!

Já tem um tempinho que o SQL Server 2022 lançou e ele trouxe diversas novidades interessantes.

Hoje falaremos um pouco sobre a função T-SQL GREATEST(), esse cara é semelhante a função MAX() que retorna o maior valor de uma tabela, mas diferente dele que permite apenas um argumento, a função GREATEST() lhe permite ver o valor máximo de várias colunas ao mesmo tempo.

Bem, para ilustrar nosso cenário, nada melhor do que fazer uma brincadeira não é?

Iremos fazer hoje o BOLICHE com os líderes da Power Tuning!!!

Primeiramente faremos a criação de uma base de dados chamada BOLICHE (meio óbvio né?, rs)…

Logo em seguida, utilizaremos nossa base criada :

Agora iremos criar uma tabela com os Jogadores do nosso Jogo :

Após criar a tabela iremos popular os jogadores :

Agora, iremos criar uma tabela para o nosso jogo, essa tabela se chamará Rodada, teremos o Id do jogador, Id do jogo e o Frame (que representa o valor obtido de cada rodada daquele determinado jogador no jogo).

Em seguida, iremos inserir os nossos Jogadores.

Agora, para não ser injusto com ninguém , iremos atualizar randomicamente as jogadas de todos os nossos jogadores, para isso, fiz um simples cursor que atualiza cada frame com a função RAND() atualizando randomicamente os valores de 0 a 100.

O Script ficou assim :

Vamos consultar como ficou o nosso jogo?

Poxa, legal!!! Mas qual foi a melhor pontuação de cada jogador? Quem ganhou a rodada?

Primeiro, vamos tentar recuperar a melhor pontuação de cada jogador.

Eita, deu erro (lembra que falei que o MAX() permite apenas um argumento) ? … É, vamos ter que pensar nisso de um outro jeito…

Hahahaha, viu ai? Gambiarra da pura!!!

Fizemos uma subconsulta com um FROM VALUES, informamos todas as colunas das rodadas e depois atribuímos um alias “val” e depois pedimos para retornar o MAX () desse cara…

É meus amigos… é preciso usar a imaginação. Até o SQL Server 2022, a vida era sofrida…

Agora que vamos demonstrar a função GREATEST(). Lembra que eu falei que ela permite informar várias colunas?

Olha como é bem mais simples :

Bacana não é? isso ajudará bastante os desenvolvedores SQL quando precisar encontrar o maior valor de diversas colunas.

Fizemos um comparativo de performance das duas maneiras apresentadas e não houve muita diferença não, inclusive o exemplo com GREATEST() pareceu ter um plano de execução mais otimizado em relação a nossa gambiarra.

Segue o link da documentação oficial desta logical function.

https://learn.microsoft.com/en-us/sql/t-sql/functions/logical-functions-greatest-transact-sql?view=sql-server-ver16

E aí ?? Quem ganhou o jogo?

Tchan, Tchan, Tchan, Tchan……

Eitaaaaaaaa!!! não costumo ganhar nem uma rifa de frango, mas hoje incrivelmente a sorte estava ao meu favor!!!

Parabéns pra mim.. (Alguns dirão que o resultado foi manipulado, mas não foi não tá?) kkkkk

Por hoje é isso galera, espero que tenham gostado.

Tentarei postar com mais frequência.

Forte abraço, até mais!!

Gustavo Larocca

Consultor SQL server

 

 

 

 

 

 

 

 

 

 

Deixe uma resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.