introdução

neste artigo, aprenderemos a usar a função MAX agregada em nossos comandos POSTGRES SQL de várias perspectivas, para obter um nível mais profundo de compreensão. Aqui vamos discutir:

  • o quê? Do ponto de vista iniciante, o que a função MAX faz?
  • por quê? Em que situações devemos usar a função Max ()?
  • como? Como usamos essa função em nosso SQL?
  • mais também faremos algum uso do grupo por construct.

pré-requisitos

  • compreensão de Nível Iniciante de escrever SQL para PostgreSQL (ou Oracle, MySQL, MS SQL Server, etc.) usando a ferramenta de administração PG ou alguma outra ferramenta de administração db, ou por meio de código ou script/linguagens de codificação como PHP, Python, Javascript, Java, C#, ASP.Net, VB.Net, Ruby, Node.js, etc.) que fornecem uma conexão de banco de dados, bem como um método para enviar as consultas SQL do banco de dados, para obter dados ou fazer alterações no seu banco de dados.
  • compreensão do uso de algumas instruções SQL básicas (PL/SQL), como SELECT, FROM e GROUP BY.
  • conhecimento do que são uma string e uma função.

Qual é a função MAX() e como funciona?

a função Postgres MAX() retorna o valor mais alto (máximo) de um conjunto de números.

Sintaxe

1
i_highest_of_set := MAX(set_of_numbers);

Por que e quando podemos usar o MAX() função?

sempre que você tiver um conjunto de números em que deseja saber qual desse conjunto é o mais alto em conjunto.Vamos começar com um exemplo fácil

começaremos com um exemplo fácil de entender. Nosso conjunto de dados inicial é uma tabela chamada coding_languages.

id_tech t_name i_rapid_dev
0 Python 7
1 Java 5
2 PHP 9
3 Javascript 8

Na nossa empresa de desenvolvimento de software, a tabela acima chamado coding_languages tem três campos, incluindo:

  • id_tech é o nosso único identificador.
  • t_name é o nome da linguagem de codificação.
  • i_rapid_dev é uma avaliação inteira da rapidez com que um codificador médio pode se desenvolver usando a linguagem.

o objetivo é descobrir qual idioma tem a classificação mais alta em termos de desenvolvimento rápido (i_rapid_dev). Vamos escrever nosso script SQL para usar a função MAX para recuperar o t_name que tem o valor mais alto na coluna i_rapid_dev em nosso conjunto de registros de banco de dados PostgreSQL:

1
2
3
4
5
6
7
8
SELECIONE
id_tech
, t_name
, MAX(i_rapid_dev)
DE
coding_languages
GRUPO
i_rapid_dev;

Nota: para o SQL exemplo acima: Isso é o que queremos utilizar o nosso conhecimento de SQL Grupos. Você pode pensar assim: se você quiser encontrar o máximo de mais de um número, você precisa considerar um conjunto de números.

como funciona a instrução SQL acima? Vamos dar um passo a passo:

  • (1) SELECT: estamos dizendo ao SQL engine do PostgreSQL que queremos um máximo de todos os valores (porque nenhuma cláusula WHERE ou HAVING) na coluna i_rapid_dev.
  • (2) FROM: especificando a tabela coding_languages para recuperar nossos dados.
  • (3) GROUP BY: dizendo ao Postgres que queremos agrupar os dados. A função MAX (), sendo uma função agregada, requer o agrupamento de nossos dados.

a consulta acima retorna| / id_tech / t_name / i_rapid_dev||:—:|—|————:/ / 2 / PHP / 9 /

agora sabemos que o PHP é o mais rápido em termos de desenvolvimento rápido.

outro exemplo de uso da função SQL “Max” no PostgreSQL

o mini projeto: tínhamos funcionários classificando as tecnologias usadas em nossa empresa e queremos conhecer a tecnologia de maior classificação. Aqui vamos explorar outro uso relativamente simples de MAX() enquanto introduzimos a palavra-chave” tendo”. Aqui está nosso conjunto de dados” raw “com o nome da tabela de”tecnologias”:

id_tech t_name_user t_name_tech t_category_tech i_grade
0 Ted Java Lang 4
1 Bif Mongo NoSQL 16
2 Susan MySQL RDB 8
3 Tim PostgreSQL RDB 16
4 Gary Python Lang 20
5 Sammy PHP Lang 12

Vamos plano de como proceder. Queremos construir uma consulta que fará mais de uma coisa, incluindo:

  • (1) Considere apenas as linhas em nosso conjunto de dados onde o valor _t_categorytech field (column) é igual a “Lang”. É aqui que a cláusula HAVING é útil. Ele produzirá 3 linhas. Consegues ver porquê? Dica: procure na tabela acima o valor “Lang”. Observe que existem três? Em qual coluna eles estão?
  • (2) devolva o valor no campo _t_nametech para essas 3 linhas porque queremos saber com quais tecnologias as notas combinam.
  • (3) não nos importamos com quem fez a avaliação, portanto, nenhuma menção à coluna _t_nameuser.
  • (4) Obtenha um máximo de soma dos valores dessas 3 linhas usando a coluna _igrade.
  • (5) use GROUP BY para agrupar as colunas apropriadas.

análise do SQL acima:

  • (1) SELECT: estamos filtrando nossa tabela Postgres para: (a) Mostre a coluna t_name_tech, (b) calcule a soma das notas (Sum(i_grade)) para cada tecnologia fornecida e (c) mostre o máximo dessas somas (Max(i_sum_of_grades)) e nomeie o resultado como i_highest_grade.
  • (2) FROM: especificando a tabela coding_languages como a fonte de nossos dados.
  • (3) GROUP BY: notificando PostgreSQL que estamos agrupando. A função MAX requer que agrupemos os dados que o Postgres está resumindo internamente e encontrando os mais altos.
  • (4) HAVING: é aqui que instruímos o PostgreSQL a filtrar nas linhas que têm “Lang” no campo t_category_tech.

A consulta acima retorna:

t_name_tech t_category_tech i_grade
PHP Lang 12

Notas

  • Por que nós o nome de alguns de nossos variáveis e colunas da tabela com um prefixo “i” ou “t”? Usamos ” i “para significar inteiro e” t ” para significar texto ou string.
  • convidamos você a procurar nossos outros artigos que utilizam a poderosa cláusula Postgres GROUP BY.

conclusão

aqui aprendemos quando e como é melhor usar a função MAX() no PostgreSQL para encontrar o número de maior valor em um conjunto de números. Usamos tanto a iniciantes e de nível mais difícil exemplos, o dimensionamento de dificuldade, de modo a tornar o processo de aprendizagem mais fácil possível porque o SQL, às vezes, pode ser difícil de esquentar a cabeça, especialmente quando você usar o GROUP BY e HAVING cláusulas para trabalhar com subconjuntos de dados.

Deixe uma resposta

O seu endereço de email não será publicado.