COUNT
MIN
SUM
AVG
MAX
100

Supongamos que tenemos una tabla llamada "clientes" con las siguientes columnas: id, nombre, ciudad y edad. Queremos contar cuántos clientes hay en cada ciudad y mostrar solo aquellas ciudades que tienen más de 3 clientes.

SELECT ciudad, COUNT(*) as total_clientes FROM clientes GROUP BY ciudad HAVING COUNT(*) > 3;

100

Suponga que tiene una tabla "ventas" con las columnas "id_venta", "fecha_venta" y "monto_venta". Desea encontrar las ventas realizadas en días en los que se vendió al menos un producto por un valor de $100 o más.

SELECT fecha_venta, MIN(monto_venta) FROM ventas GROUP BY fecha_venta HAVING MIN(monto_venta) >= 100;

100

Supongamos que tienes una tabla ventas con las columnas id_producto, cantidad y precio. Quieres saber la suma de las ventas por producto, pero solo para aquellos productos que han vendido más de 100 unidades en total.

SELECT id_producto, SUM(cantidad*precio) AS total_ventas FROM ventas GROUP BY id_producto HAVING SUM(cantidad) > 100;

100

Supongamos que tenemos una tabla "ventas" con las siguientes columnas: fecha, producto, cantidad, precio. Queremos obtener el promedio de ventas diarias por producto, pero solo para aquellos productos que hayan tenido un promedio diario de venta superior a 100 unidades.

SELECT producto, AVG(cantidad) as promedio_diario FROM ventas GROUP BY producto HAVING AVG(cantidad) > 100;

100

Supongamos que tenemos una tabla llamada "ventas" con las siguientes columnas: "id_venta", "id_producto", "cantidad" y "precio_unitario". Queremos saber cuál es el valor máximo de venta para cada producto.

SELECT id_producto, MAX(cantidad*precio_unitario) as venta_maxima FROM ventas GROUP BY id_producto HAVING venta_maxima > 1000;

200

Supongamos que tenemos una tabla llamada "pedidos" con las siguientes columnas: id_pedido, id_cliente, fecha_pedido y total_pedido. Queremos contar cuántos pedidos ha hecho cada cliente y mostrar solo aquellos clientes que hayan hecho más de 5 pedidos.

SELECT id_cliente, COUNT(*) as total_pedidos FROM pedidos GROUP BY id_cliente HAVING COUNT(*) > 5;

200

Suponga que tiene una tabla "empleados" con las columnas "id_empleado", "nombre", "salario" y "departamento". Desea encontrar los departamentos en los que el salario mínimo de los empleados es superior a $50,000.

SELECT departamento, MIN(salario) FROM empleados GROUP BY departamento HAVING MIN(salario) > 50000;

200

Supongamos que tienes una tabla pedidos con las columnas id_pedido, fecha y total. Quieres saber el total de ventas por mes, pero solo para aquellos meses en los que el total de ventas ha sido superior a 10,000.

SELECT YEAR(fecha) AS year, MONTH(fecha) AS month, SUM(total) AS total_ventas FROM pedidos GROUP BY YEAR(fecha), MONTH(fecha) HAVING SUM(total) > 10000;

200

Supongamos que tenemos una tabla "ventas" con las siguientes columnas: fecha, producto, cantidad, precio. Queremos obtener el promedio de ventas diarias por producto, pero solo para aquellos productos cuyo precio promedio sea mayor que 50 y cuyo promedio diario de venta sea mayor que 100 unidades.

SELECT producto, AVG(cantidad) as promedio_diario, AVG(precio) as precio_promedio FROM ventas GROUP BY producto HAVING AVG(precio) > 50 AND AVG(cantidad) > 100;

200

Supongamos que tenemos una tabla llamada "ventas" con las siguientes columnas: "id_venta", "id_producto", "cantidad" y "precio_unitario". Queremos saber cuál es el valor máximo de venta para cada producto y mostrar solo los productos con una venta máxima mayor a 5000.

SELECT id_producto, MAX(cantidad*precio_unitario) as venta_maxima FROM ventas GROUP BY id_producto HAVING MAX(cantidad*precio_unitario) > 5000;

300

Supongamos que tenemos una tabla llamada "productos" con las siguientes columnas: id_producto, nombre, precio y stock. Queremos mostrar el nombre de los productos que tienen un stock menor a 10 y cuyo precio sea mayor a $100.  

SELECT nombre FROM productos WHERE precio > 100 GROUP BY nombre HAVING SUM(stock) < 10;

300

Suponga que tiene una tabla "pedidos" con las columnas "id_pedido", "fecha_pedido", "id_cliente" y "monto_pedido". Desea encontrar los clientes que realizaron un pedido de al menos $1000 después de cierta fecha.

SELECT id_cliente, MIN(monto_pedido) FROM pedidos WHERE fecha_pedido > '2022-01-01' GROUP BY id_cliente HAVING MIN(monto_pedido) >= 1000;

300

Supongamos que tienes una tabla ventas con las columnas id_producto, id_cliente y cantidad. Quieres saber qué clientes han comprado más de 500 unidades en total, y cuántas unidades han comprado cada uno.

SELECT id_cliente, SUM(cantidad) AS total_comprado FROM ventas GROUP BY id_cliente HAVING SUM(cantidad) > 500;

300

Supongamos que tenemos una tabla "ventas" con las siguientes columnas: fecha, producto, cantidad, precio y categoría. Queremos obtener el promedio de ventas diarias por producto y categoría, pero solo para aquellos productos que hayan tenido un promedio diario de venta superior al promedio general de ventas diarias de la tienda.

SELECT categoria, producto, AVG(cantidad) as promedio_diario FROM ventas GROUP BY categoria, producto HAVING AVG(cantidad) > (SELECT AVG(cantidad) FROM ventas);

300

Supongamos que tenemos una tabla llamada "pedidos" con las siguientes columnas: "id_pedido", "id_cliente", "fecha_pedido", "total_pedido". Queremos saber cuál es el total de venta máximo por cliente en los últimos 3 meses, y mostrar los resultados ordenados de forma descendente.

SELECT id_cliente, MAX(total_pedido) as venta_maxima FROM pedidos WHERE fecha_pedido >= DATEADD(month, -3, GETDATE()) GROUP BY id_cliente HAVING MAX(total_pedido) > 10000 ORDER BY MAX(total_pedido) DESC;

400

Supongamos que tenemos una tabla llamada "empleados" con los campos "nombre", "salario" y "departamento". Queremos aquellos departamentos que tienen más de 2 empleados que ganan más de 5000 dólares al mes.

SELECT departamento, COUNT(*) AS cantidad FROM empleados WHERE salario > 5000 GROUP BY departamento HAVING COUNT(*) > 2;

400

Suponga que tiene una tabla "productos" con las columnas "id_producto", "nombre", "precio" y "id_proveedor". Desea encontrar los proveedores que ofrecen al menos un producto que cuesta menos de $10 y al menos un producto que cuesta más de $100.

SELECT id_proveedor, MIN(precio) FROM productos GROUP BY id_proveedor HAVING MIN(precio) < 10 AND MAX(precio) > 100;

400

Supongamos que tienes una tabla llamada ventas que tiene las columnas id_venta, id_producto, fecha y cantidad. Quieres obtener el total de ventas por producto para aquellos productos que hayan vendido al menos 50 unidades, ordenados por el total de ventas de forma descendente.

SELECT id_producto, SUM(cantidad) as total_ventas FROM ventas GROUP BY id_producto HAVING SUM(cantidad) >= 50 ORDER BY total_ventas DESC;

400

Supongamos que tenemos una tabla "ventas" con las siguientes columnas: fecha, producto, cantidad, precio y categoría. Queremos obtener el promedio de ventas diarias por producto y categoría, pero solo para aquellos productos que hayan tenido un promedio diario de venta superior al promedio general de ventas diarias de la tienda y cuyo precio promedio sea mayor que 50.

SELECT categoria, producto, AVG(cantidad) as promedio_diario, AVG(precio) as precio_promedio FROM ventas GROUP BY categoria, producto HAVING AVG(cantidad) > (SELECT AVG(cantidad) FROM ventas) AND AVG(precio) > 50;

400

Supongamos que tenemos una tabla llamada "empleados" con las siguientes columnas: "id_empleado", "nombre", "apellido", "salario" y "departamento". Queremos saber el nombre del empleado con el salario máximo en cada departamento, pero solo queremos mostrar los resultados para los departamentos con más de 5 empleados.

SELECT departamento, MAX(salario) as salario_maximo, nombre, apellido FROM empleados GROUP BY departamento, nombre, apellido HAVING departamento IN ( SELECT departamento FROM empleados GROUP BY departamento HAVING COUNT(*) > 5 );

500

Supongamos que ahora queremos saber cuántos clientes han comprado más de 10 productos distintos en nuestra tienda en línea. Tenemos una tabla llamada "ventas" con los campos "id_venta", "id_cliente" y "id_producto".

SELECT id_cliente, COUNT(DISTINCT id_producto) AS cantidad_productos FROM ventas GROUP BY id_cliente HAVING COUNT(DISTINCT id_producto) > 10;

500

Supongamos que tenemos una tabla "pedidos" con las siguientes columnas: id_pedido, id_cliente, fecha_pedido, y monto_pedido. Queremos encontrar los clientes que hayan realizado al menos 5 pedidos y cuyo monto mínimo de pedido sea inferior a $100. Además, queremos ordenar los resultados por el monto mínimo de pedido en orden ascendente.

SELECT id_cliente, COUNT(*) AS num_pedidos, MIN(monto_pedido) AS monto_minimo FROM pedidos GROUP BY id_cliente HAVING COUNT(*) >= 5 AND MIN(monto_pedido) < 100 ORDER BY monto_minimo ASC;

500

Supongamos que tienes una tabla llamada alumnos que tiene las columnas id_alumno, nombre, edad y promedio. Quieres obtener los nombres de los alumnos que tengan un promedio mayor o igual a 8.0 y que tengan al menos 20 años, ordenados alfabéticamente.

SELECT nombre, promedio FROM alumnos WHERE edad >= 20 GROUP BY id_alumno HAVING promedio >= 8.0 ORDER BY nombre;

500

Supongamos que tenemos dos tablas, "ventas" y "productos", y queremos obtener el nombre y la categoría de los productos que hayan tenido un promedio diario de venta superior a 100 unidades en el último mes. Además, queremos ordenar los resultados por categoría y por el número de unidades vendidas en orden descendente.

SELECT productos.nombre, productos.categoria, AVG(ventas.cantidad) as promedio_diario, SUM(ventas.cantidad) as total_vendido FROM ventas JOIN productos ON ventas.producto_id = productos.id WHERE ventas.fecha >= DATEADD(month, -1, GETDATE()) GROUP BY productos.nombre, productos.categoria HAVING AVG(ventas.cantidad) > 100 ORDER BY productos.categoria ASC, total_vendido DESC;

500

Supongamos que tenemos una tabla llamada "empleados" con las siguientes columnas: "id_empleado", "nombre", "apellido", "salario" y "departamento". Queremos saber el nombre del empleado con el salario máximo en cada departamento, pero solo queremos mostrar los resultados para los departamentos con más de 2 empleados, y ordenar los resultados por el nombre del departamento en orden ascendente y el salario máximo en orden descendente.

SELECT departamento, MAX(salario) as salario_maximo, nombre, apellido FROM empleados GROUP BY departamento, nombre, apellido HAVING departamento IN ( SELECT departamento FROM empleados GROUP BY departamento HAVING COUNT(*) > 2 ) ORDER BY departamento ASC, salario_maximo DESC;

M
e
n
u