- Vypiste pocet vsetkych objednavok (ORDERS).
- Vypiste si prvych 10 zamestnancov.
riesenie:
SELECT * FROM employees LIMIT 10;
- Pre kazdu krajinu pocet dodavok do tejto krajiny.
- Vypiste pre kazdu objednavku jej hodnotu - tj. pocet kusov * cena za kus - (percentualna) zlava (len prvych 10 zaznamov).
riesenie:
SELECT unitprice * quantity * (1-discount) AS cena FROM orderdetails LIMIT 10;
- Vypiste pre kazdeho dodavatela pocet produktov, ktore dodava.
- Vypiste pre kazdu krajinu hodnotu dodavok do tejto krajiny.
v starej baze: vratite sa pomocou \c
- Vypiste pre kazdeho zamestnanca pocet jeho podriadenych. (uz nie bonus ;-))
- Vypiste pre kazde oddelenie priemerne premie (priemer len z tych, co maju premie).
riesenie:
SELECT dname, COALESCE(AVG(comm),0) FROM dept LEFT OUTER JOIN emp ON dept.deptno = emp.deptno GROUP BY dname;
- Vypiste pre kazde oddelenie priemerne platy.
A vraciame sa spat k Northwind
- Vypiste priemernu cenu produktov pre jednotlive kategorie.
- Vypiste dodavatelov s najvacsim poctom roznych druhov produktov objednanych v taliansku.
riesenie:
SELECT companyname, COUNT(DISTINCT productid) AS "pocet" FROM suppliers NATURAL JOIN products NATURAL JOIN orderdetails NATURAL JOIN orders WHERE shipcountry ILIKE 'italy' GROUP BY companyname ORDER BY "pocet" DESC;
- Vypiste dodavatelov s najvacsim poctom produktov objednanych v taliansku.
- Vypiste vsetky dodavky, ktore mozu byt splnene so zasobami na sklade.
- Najst zakaznika s najvacsou (hodnotou) objednavky.
- Najst zamestnanca s najvacsou sumou hodnot "jeho" objednavok.
- Najst zamestnancov len s objednavkami do Nemecka.
- Najst dodavatelov dodavajucich len napoje.
Male pripomenutie datalogu
- Vypiste vsetky oddelenia (ich nazov), kde pracuju iba manazeri, analytici a uradnici.
- Vypiste vsetky dvojice nadriadeny - podriadeny (aj tranzitivne, tj. nielen priamy).
riesenie:
Viete take napisat aj v SQL?