Introducción

En este artículo, aprenderemos a usar la función aggregate Max en nuestros comandos SQL Postgres desde múltiples perspectivas, para obtener un nivel de comprensión más profundo. Aquí discutiremos:

  • ¿Qué? Desde una perspectiva de principiante, ¿qué hace la función MAX?
  • ¿Por qué? ¿En qué situaciones deberíamos usar la función Max ()?
  • ¿Cómo? ¿Cómo usamos esta función en nuestro SQL?
  • Más También haremos algún uso del GRUPO POR construcción.

Requisitos previos

  • Comprensión de nivel principiante de escribir SQL para PostgreSQL(o Oracle, MySQL, MS SQL Server, etc.) utilizando la herramienta de administración PG o alguna otra herramienta de administración de bases de datos, o mediante código o lenguajes de programación como PHP, Python, Javascript, Java, C#, ASP.Net, VB.Net, Ruby, Nodo.js, etc.) que proporcionan una conexión a la base de datos, así como un método para enviar las consultas SQL de la base de datos, para obtener datos o realizar cambios en la base de datos.
  • Comprensión del uso de algunas instrucciones SQL básicas (PL/SQL), como SELECT, FROM y GROUP BY.
  • Conocimiento de lo que son una cadena y una función.

¿Qué es la función MAX () y cómo funciona?

La función Postgres MAX() devuelve el valor más alto (máximo) de un conjunto de números.

Sintaxis

1
i_highest_of_set := MAX(set_of_numbers);

por Qué y cuando hacemos uso de la función MAX ()?

Cada vez que tenga un conjunto de números en el que desee saber cuál de ese conjunto es el más alto del conjunto.

Comencemos con un ejemplo sencillo

Comenzaremos con un ejemplo fácil de entender. Nuestro conjunto de datos inicial es una tabla llamada coding_languages.

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

En nuestra empresa de desarrollo de software, la tabla anterior llamado coding_languages tiene tres campos, incluyendo:

  • id_tech es nuestro identificador único.
  • t_name es el nombre del lenguaje de codificación.
  • i_rapid_dev es una evaluación de enteros de la rapidez con la que un codificador promedio puede desarrollarse utilizando el lenguaje.

El objetivo es averiguar qué idioma tiene la calificación más alta en términos de desarrollo rápido (i_rapid_dev). Escribamos nuestro script SQL para usar la función MAX para recuperar el t_name que tiene el valor más alto en la columna i_rapid_dev en nuestro conjunto de registros de base de datos PostgreSQL:

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

Nota para el SQL ejemplo de arriba: Esto es donde utilizamos nuestros conocimientos de SQL Grupos. Puede pensarlo de esta manera: Si desea encontrar el máximo de más de un número, debe considerar un conjunto de números.

¿Cómo funciona la instrucción SQL anterior? Lo haremos paso a paso:

  • (1) SELECT: Le estamos diciendo al motor SQL de PostgreSQL que queremos un máximo de todos los valores (porque no hay cláusula WHERE o HAVING) en la columna i_rapid_dev.
  • (2) FROM: Especificar la tabla coding_languages de la que recuperar nuestros datos.
  • (3) GROUP BY: Decirle a Postgres que queremos agrupar los datos. La función MAX (), al ser una función agregada, requiere agrupar nuestros datos.

La consulta anterior devuelve:| id_tech | t_name | i_rapid_dev||:—:|—|————:|| 2 | PHP | 9 |

ahora sabemos que PHP es el más rápido en términos de desarrollo rápido.

Otro ejemplo de uso de la función SQL » Max » en PostgreSQL

El mini proyecto: Hicimos que los empleados calificaran las tecnologías utilizadas en nuestra empresa y quisieran conocer la tecnología de mayor calificación. Aquí exploraremos otro uso relativamente simple de MAX() al introducir la palabra clave «TENER». Aquí está nuestro conjunto de datos» sin procesar «con el nombre de tabla de»tecnologías»:

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 a planear cómo proceder. Queremos crear una consulta que haga más de una cosa, incluyendo:

  • (1) Solo considere las filas de nuestro conjunto de datos donde el valor del campo (columna) _t_categorytech es igual a «Lang». Aquí es donde la cláusula de POSESIÓN es útil. Dará 3 filas. ¿Puedes ver por qué? Sugerencia: Busque en la tabla de arriba el valor «Lang». Note que hay tres? ¿En qué columna están?
  • (2) Devuelve el valor en el campo _t_nametech para esas 3 filas porque queremos saber con qué tecnologías van las calificaciones.
  • (3) No nos importa quién hizo la evaluación, por lo que no se menciona la columna _t_nameuser.
  • (4) Obtenga un MÁXIMO de SUMA de los valores de esas 3 filas utilizando la columna _igrade.
  • (5) Use AGRUPAR POR para agrupar las columnas apropiadas.

Análisis del SQL anterior:

  • (1) SELECT: Estamos filtrando nuestra tabla Postgres para: (a) Mostrar la columna t_name_tech, (b) calcular la suma de grados (Sum(i_grade)) para cada tecnología dada, y (c) Mostrar el máximo de esas sumas (Max(i_sum_of_grades)) y nombrar el resultado como i_highest_grade.
  • (2) FROM: Especificando la tabla coding_languages como fuente de nuestros datos.
  • (3) GROUP BY: Notificando a PostgreSQL que estamos agrupando. La función MAX requiere que agrupemos los datos que Postgres está resumiendo internamente y encuentre el más alto.
  • (4) HAVING: Aquí es donde le indicamos a PostgreSQL que filtre en las filas que tienen «Lang» en el campo t_category_tech.

La consulta anterior devuelve:

t_name_tech t_category_tech i_grade
PHP Lang 12

Notas

  • ¿Por qué nombramos algunas de nuestras variables y columnas de tabla con un prefijo de «i» o «t»? Usamos » i «para significar entero y» t » para significar texto o cadena.
  • Le invitamos a buscar nuestros otros artículos que utilizan la poderosa cláusula GROUP BY Postgres.

Conclusión

Aquí aprendimos cuándo y cómo es mejor usar la función MAX() en PostgreSQL para encontrar el número de mayor valor en un conjunto de números. Utilizamos ejemplos de nivel principiante y más difíciles, aumentando la dificultad, para hacer que el proceso de aprendizaje sea lo más fácil posible, ya que SQL a veces puede ser difícil de comprender, especialmente cuando se utilizan las cláusulas GROUP BY y HAVING para trabajar con subconjuntos de datos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.