Sql Having
/* 01.- Comptar el nombre de clients que hi ha de la província de Tarragona */
SELECT COUNT(*)
FROM clients
WHERE provincia = 'Tarragona';
/* 02.- Donar el total del saldo total dels clients de la província de Lleida que
s’hagin donat d’alta en qualsevol dels mesos del estiu juliol o agost */
SELECT SUM(entrades-sortides)
FROM clients
WHERE provincia = 'Lleida' ANDMONTH(dataalta) LIKE 7 OR MONTH(dataalta) LIKE 8;
/* 03.- Informar del saldo màxim i el mínim dels clients que s’han donat d’alta
un dijous i que tinguin fills o estiguin casats */
SELECT MAX(entrades-sortides) AS [Maxim], MIN(entrades-sortides) AS [Minim]
FROM clients
WHERE DAY(dataalta) LIKE 'dijous' AND nfills > 0 OR estatcivil LIKE 'c';
/* 04.- Quina és la mitja de les sortides dels clientsamb població que comenci per
“AL” i que s’hagin donat d’alta en un primer trimestre de qualsevol any ? */
SELECT AVG(sortides)
FROM clients
WHERE poblacio LIKE 'AL%' AND MONTH(dataalta) BETWEEN 1 AND 3;
/* 05.- Saldo dels clients de totes les províncies excepte la de Barcelona, per
estat civil */
SELECT estatcivil, SUM(entrades-sortides)
FROM clients
WHERE provincia != 'Barcelona'GROUP BY estatcivil;
/* 06.- Total d’entrades i número, dels clients de la població de Barcelona agrupats
per any d’alta. Ordenar per total */
SELECT YEAR(dataalta) AS [, SUM(entrades) AS [Total Entrades], COUNT(*) AS [Nombre
Clients]
FROM clients
WHERE poblacio LIKE 'Barcelona'
GROUP BY dataalta
ORDER BY 2;
/* 07.- Mitja del saldo dels clients amb telèfon per província i estat civil.Excloure els que la mitja del saldo sigui inferior a 100. Ordenar per saldo*/
SELECT provincia, estatcivil, AVG(entrades-sortides)
FROM clients
WHERE telefon IS NOT NULL
GROUP BY provincia, estatcivil
HAVING AVG(entrades-sortides) > 100
ORDER BY 3;
/* 08.- Valors màxim i mínim de les dates d’alta dels clientes agrupats per
població. Excloure a les poblacions amb data mínima inferior alany 2000. Ordenar
per població */
SELECT poblacio, MAX(YEAR(dataalta)) AS [Maxim], MIN(YEAR(dataalta)) AS [Minim]
FROM clients
WHERE YEAR(dataalta) > 2000
GROUP BY poblacio
ORDER BY poblacio;
/* 09.- Total i mitja aritmètica de les sortides dels clients amb data d’alta
superior al 2000, agrupat per població i número de fills, excloent al que tinguin un
total inferior a 500. Ordenar pertotal */
SELECT poblacio, nfills, SUM(sortides) AS [Total] , AVG(sortides) AS [Mitja]
FROM clients
WHERE YEAR(dataalta) > 2000
GROUP BY poblacio, nfills
HAVING SUM(sortides) > 500
ORDER BY 3;
/* 10.- Nombre de clients per estat civil i número de fills. Ordenar pel nombre de
clients */
SELECT estatcivil, nfills, COUNT(*) AS [Nombre Clients]
FROM clients
GROUP BY estatcivil, nfillsORDER BY 3;
/* 11.- Obtenir un resum del nombre de clients per població excloent les poblacions
que no superin els cinc clients. Ordenar per població */
SELECT poblacio, COUNT(*)
FROM clients
GROUP BY poblacio
HAVING COUNT(*) > 5
ORDER BY poblacio;
/* 12.- Obtenir un resum del nombre de clients, saldo mig i la diferència entre el
saldo màxim i el mínim, per província i any d’altaexcloent les províncies i anys
que el saldo mig sigui superior a 10.000 €.
Ordenar per província ascendent i any descendent */
SELECT provincia, YEAR(dataalta), COUNT(*) AS [Clients], AVG(entrades-sortides) AS
[Mitja], MAX(entrades-sortides) - MIN(entrades-sortides) AS [Diferencia]
FROM clients
GROUP BY provincia, dataalta
HAVING AVG(entrades-sortides) > 10000
ORDER BY provincia ASC,YEAR(dataalta) DESC;
/* 13.- Amb l’ajut d’un full de càlcul obtenir, de forma manual aplicant l’algorisme
que aproximadament utilitza el servidor SQL, un informe del total del saldo per
població, dels clients amb fills on només ens interessen les poblacions on el saldo
està entre 3.000 i 50.000, ordenat pel total del saldo descendent. */
/* 1) En la primera pestanya ficar el llistat de cada població...
Regístrate para leer el documento completo.