Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Deber
SQL - ClassicModels
USE classicmodels;
-- 1. Muestre los productos que cuesten mas de $500, pero menos de $2500.
SELECT emp.officeCode,
AVG(amount) 'Promedio de ventas'
FROM payments pym
JOIN customers cus ON (pym.customerNumber = cus.customerNumber)
JOIN employees emp ON (cus.salesRepEmployeeNumber =
emp.employeeNumber)
GROUP BY emp.officeCode
HAVING SUM(amount) > 35000;
SELECT pdl.productLine,
COUNT(*) 'Numero de productos'
FROM products pd
JOIN productlines pdl ON (pd.productLine = pdl.productLine)
GROUP BY pdl.productLine;
-- 4. Muestre los empleados que NO trabajan en la Ciudad de Boston o en la ciudad
de Paris.
SELECT emp.employeeNumber,
emp.lastName,
emp.firstName
FROM employees emp
JOIN offices off ON (emp.officeCode = off.officeCode)
WHERE emp.employeeNumber NOT IN ('Boston', 'Paris');
SELECT pd.productVendor,
COUNT(*) 'Numero de productos'
FROM products pd
GROUP BY pd.productVendor
HAVING COUNT(*) > 5;
-- 6. Muestre el promedio de pagos realizados por cliente.
SELECT pym.customerNumber,
cus.customerName,
AVG(pym.amount) 'Promedio de pagos'
FROM payments pym
JOIN customers cus ON (pym.customerNumber = cus.customerNumber)
GROUP BY pym.customerNumber;
-- 7. Muestre el nombre, apellido y total pagos de los clientes cuyo valor sea menor a
$110.000.
SELECT cus.contactLastName,
cus.contactFirstName,
SUM(pym.amount) 'Total pagado'
FROM payments pym
JOIN customers cus ON (pym.customerNumber = cus.customerNumber)
GROUP BY pym.customerNumber
HAVING SUM(pym.amount) < 110000;
-- 8. Muestre cuántos pedidos ha realizado los clientes cuyo apellido incluye las letras
‘ar’.
SELECT cus.customerName,
cus.contactLastName,
COUNT(*) 'Numero de pedidos'
FROM orderdetails odd
JOIN orders ord ON (odd.orderNumber = ord.orderNumber)
JOIN customers cus ON (ord.customerNumber = cus.customerNumber)
WHERE cus.contactLastName LIKE '%ar%'
GROUP BY odd.orderNumber;
SELECT emp.officeCode,
COUNT(orderNumber) 'Numero de ordenes'
FROM orders ord
JOIN customers cus ON (ord.customerNumber = cus.customerNumber)
JOIN employees emp ON (cus.salesRepEmployeeNumber = emp.employeeNumber)
WHERE (ord.status = 'Shipped') AND (ord.shippedDate BETWEEN '2005-03-01' AND
'2005-03-31')
GROUP BY emp.officeCode;
-- 10. Muestre los productos vendidos por todos los empleados que trabajan en las
oficinas de Paris.