SQL proporciona muchas funciones integradas para realizar tareas. Hay 4 tipos de funciones Funciones de fecha, funciones de caracteres, funciones numéricas y funciones agregadas.
Aquí veremos funciones agregadas y cómo usarlas con la palabra clave HAVING .
Las funciones agregadas son funciones integradas en la base de datos que actúan en varias filas de la tabla y producen una única salida. Básicamente, hay 5 funciones agregadas que usamos con frecuencia en SQL. Las funciones agregadas son deterministas. Las funciones agregadas comunes son las siguientes:
- COUNT() : Calcula el número total de filas en la tabla, devuelve un valor único.
- AVG() : Calcula el promedio de los valores de la columna a la que se aplica.
- MIN() : Devuelve el valor mínimo en la columna a la que se aplica.
- MAX() : Devuelve el valor máximo de la columna a la que se aplica.
- SUM() : Devuelve la suma de todos los valores de la columna a la que se aplica.
¿ Cuándo usar la palabra clave HAVING ?
La palabra clave WHERE que usamos para filtrar datos en la condición dada funciona bien con operadores SQL como el operador aritmético, el operador de comparación, etc., pero cuando se trata de funciones agregadas, usamos la palabra clave HAVING para ordenar los datos en la condición dada. La cláusula GROUP BY también se usa con la palabra clave HAVING.
Sintaxis:
SELECT column_name(s) FROM table_name WHERE condition GROUP BY expression HAVING condition ORDER BY expression LIMIT value;
Para usar SUM() con la cláusula Tener:
Paso 1: Crear una base de datos
Consulta:
CREATE DATABASE database_name;
Paso 2: Cree una tabla llamada productos.
Consulta:
CREATE TABLE PRODUCTS(product_id int primary key, product_name varchar(45), product_cost float);
Paso 3: Insertar valores en la tabla
Consulta:
INSERT INTO PRODUCTS VALUES (1001, 'Colgate Toothpaste', 2.25), (1002 'T-Shirt', 5), (1003, 'Jeans', 6.5), (1004, 'Shorts', 4.5), (1005, 'Sneakers', 8.99), (1007, 'Mouthwash', 3.35), (1008, 'Denim Jeans', 8.99), (1009, 'Synsodyne Toothpaste', 3.35);
Paso 4: Ahora veamos el contenido de la tabla de productos.
Consulta:
SELECT * FROM products;
Producción:
Paso 5: Ahora nuestra tarea es imprimir todos aquellos productos cuya suma del costo del producto sea mayor a 3.50.
Consulta:
SELECT product_name, product_cost FROM products GROUP BY product_name, product_cost HAVING SUM(product_cost) > 3.5 ORDER BY product_cost;
Producción:
Aquí solo se muestran aquellos productos cuyo costo es mayor a 3.5
Para usar MAX() y MIN() con la cláusula Have
Estamos usando la misma tabla de productos que usamos en el ejemplo anterior.
Nuestra tarea es encontrar el nombre de los productos cuyo precio máximo sea mayor a 7 y aquellos nombres de productos cuyo precio mínimo sea menor a 3.
Consulta:
SELECT * FROM products;
CONSULTA 1(Para buscar productos con precio máximo superior a 7)
SELECT product_name FROM products GROUP BY product_name HAVING MAX(product_cost) > 7;
PRODUCCIÓN
CONSULTA 2(Para encontrar productos con un precio mínimo inferior a 3)
SELECT product_name FROM products GROUP BY product_name HAVING MIN(product_cost) < 3;
Producción:
Para usar AVG() con la cláusula Have
Usaremos la tabla de productos para demostrar esta parte.
Consulta:
SELECT * FROM products;
Ahora, queremos seleccionar aquellos productos cuyo precio sea mayor que el precio medio de la tabla de productos.
Consulta:
SELECT product_name FROM products GROUP BY product_name HAVING AVG(product_cost) > (SELECT AVG(product_cost) FROM products);
Producción:
Aquí sólo están presentes aquellos productos cuyo precio medio es superior al precio medio de la tabla de productos.
Para usar Count() con la cláusula Have
Paso 1: Crearemos una base de datos.
Consulta:
CREATE DATABASE database_name;
Paso 2: Crear inicio de sesión en la tabla.
Consulta:
CREATE TABLE login(signin_id int PRIMARY KEY ,customer_id int, date_login date);
Paso 3: Insertar valores en la tabla.
Consulta:
INSERT INTO login values (1, 121, '2021-10-21'), (2, 135, '2021-05-25'), (3, 314, '2021-03-13'), (4, 245, '2021-07-19'), (5, 672, '2021-09-23'), (6, 135, '2021-06-12'), (7,120,'2021-06-14'), (8, 121, '2021-04-24'), (9,135, '2021-06-15'), (10, 984, '2021-01-30');
Paso 4: Mostrar el contenido de la tabla.
Consulta:
SELECT * FROM login;
Producción:
Ahora queremos mostrar las identificaciones de clientes que ocurrieron al menos 2 veces.
Consulta:
SELECT customer_id FROM login GROUP BY customer_id HAVING COUNT(customer_id) >=2 ;
Producción:
Aquí customer_id 121 y 135 ocurrieron al menos 2 veces.
Publicación traducida automáticamente
Artículo escrito por utkarshtyagi0066 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA