Napisz zapytanie, które wypisze wszystkie produkty, których cena jest większa od średniej ceny artykułu w sklepie.
SELECT
*
FROM
sklep
WHERE
cena > (SELECT avg(cena) FROM sklep );
Napisz zapytanie, które wypisze wszystkie produkty, których cena jest większa od średniej ceny w obrębie danego artykułu.
SELECT
s1.*
FROM
sklep s1
WHERE
s1.cena >= (SELECT avg(s2.cena) FROM sklep s2 WHERE s2.artykul = s1.artykul);
Napisz zapytanie, które wypisze wszystkie produkty, których cena jest równa minimalnej cenie w obrębie danego artykułu lub maksymalnej cenie w obrębie danego artykułu.
SELECT
s1.*
FROM
sklep s1
WHERE
s1.cena = (SELECT min(s2.cena) FROM sklep s2 WHERE s2.artykul = s1.artykul)
OR
s1.cena = (SELECT max(s2.cena) FROM sklep s2 WHERE s2.artykul = s1.artykul);
Napisz zapytanie, które wypisze artykuł, dostawcę, cenę, minimalną cenę tego artykułu w sklepie, maksymalną cenę tego artykułu w sklepie, średnią cenę tego artykułu w sklepie, średnią cenę wszystkich artykułów w sklepie dla artykułów, których cena jest równa minimalnej lub maksymalnej cenie tego artykułu w sklepie.
SELECT
s1.artykul, s1.dostawca, s1.cena,
-- minimalna cena tego artykulu
(SELECT min(s2.cena) FROM sklep s2 WHERE s2.artykul = s1.artykul) AS "min cena tego art",
-- maksymalna cena tego artykulu
(SELECT max(s2.cena) FROM sklep s2 WHERE s2.artykul = s1.artykul) AS "max cena tego art",
-- srednia cena tego artykulu
(SELECT avg(s2.cena) FROM sklep s2 WHERE s2.artykul = s1.artykul) AS "avg cena tego art",
-- średnią cenę wszystkich artykułów w sklepie dla artykułów, których cena jest równa minimalnej lub maksymalnej cenie tego artykułu w sklepie
(SELECT avg(cena)
FROM (
SELECT
s3.*
FROM
sklep s3
WHERE
s3.cena = (SELECT min(s2.cena) FROM sklep s2 WHERE s2.artykul = s3.artykul)
OR
s3.cena = (SELECT max(s2.cena) FROM sklep s2 WHERE s2.artykul = s3.artykul)
) tmp )
FROM sklep s1;
Zapytanie pomocnicze.
SELECT avg(cena)
FROM (
SELECT
s1.*
FROM
sklep s1
WHERE
s1.cena = (SELECT min(s2.cena) FROM sklep s2 WHERE s2.artykul = s1.artykul)
OR
s1.cena = (SELECT max(s2.cena) FROM sklep s2 WHERE s2.artykul = s1.artykul)
) tmp;