Les dejo la solución a los ejercicios que compartíamos la semana pasada. De cualquier manera, es muy recomendable que intenten hacerlos por su cuenta, antes de mirar las soluciones. Como siempre, espero sus consultas por las dudas que les surjan, hayan o no visto esta resolución.
Soluciones a los ejercicios de agregación
Mostrar código
-- 1) Mostrar el promedio del precio de venta de las propiedades cuyo
-- id_tipo_operacion es 2 y su superficie es mayor a 80 metros cuadrados.
SELECT AVG(precio_venta) FROM operaciones
WHERE id_tipo_operacion = 2 AND superficie > 80;
-- 1340925.0882
-- 2) Mostrar el mayor precio de venta entre las operaciones con
-- id_provincia = 4, y que tengan fecha de venta en noviembre de 2005.
SELECT MAX(precio_venta) FROM operaciones
WHERE id_provincia = 4 AND fecha_venta BETWEEN '2005-11-01' AND '2005-11-30';
-- 3) Mostrar los id de todos los vendedores junto a la suma de los precios de
-- venta concretados por los mismos en 2006.
SELECT id_vendedor, SUM(precio_venta)
FROM operaciones
WHERE YEAR(fecha_venta) = 2006
GROUP BY id_vendedor;
-- +-------------+-------------------+
-- | id_vendedor | SUM(precio_venta) |
-- +-------------+-------------------+
-- | 15 | 181212974 |
-- | 16 | 151031511 |
-- | 17 | 166688716 |
-- | 18 | 157010804 |
-- | 19 | 170379469 |
-- | 20 | 140035602 |
-- | 22 | 150267222 |
-- +-------------+-------------------+
-- 4) Repetir la consulta anterior, mostrando solamente aquellos vendedores cuya
-- suma supere los 160 millones.
SELECT id_vendedor, SUM(precio_venta)
FROM operaciones
WHERE YEAR(fecha_venta) = 2006
GROUP BY id_vendedor
HAVING SUM(precio_venta) > 160000000;
-- +-------------+-------------------+
-- | id_vendedor | SUM(precio_venta) |
-- +-------------+-------------------+
-- | 15 | 181212974 |
-- | 17 | 166688716 |
-- | 19 | 170379469 |
-- +-------------+-------------------+
-- 5) Mostrar, por cada id de provincia, el promedio de los precios de venta de
-- las operaciones de tipo "2".
SELECT id_provincia, AVG(precio_venta)
FROM operaciones
WHERE id_tipo_operacion = 2
GROUP BY id_provincia;
--
-- +--------------+-------------------+
-- | id_provincia | AVG(precio_venta) |
-- +--------------+-------------------+
-- | 1 | 1187838.6608 |
-- | 2 | 1244477.0703 |
-- | 3 | 1172953.9937 |
-- | 4 | 1198260.6698 |
-- +--------------+-------------------+
--