Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --1. Vypište jméno a příjmení zaměstnance/zaměstnanců, kteří mají v rámci společnosti nejnižší mzdu.
- SELECT MIN(mzda) FROM a_hr.zamestnanci;
- SELECT jmeno, prijmeni FROM a_hr.zamestnanci WHERE mzda = (SELECT MIN(mzda) FROM a_hr.zamestnanci);
- --2. Vypište jméno, příjmení a název pozice. Ve výpise se objeví jen pozice, na kterých pracuje jen jeden zaměstnanec.
- SELECT pozice_id, COUNT (pozice_id) pocet FROM a_hr.zamestnanci GROUP BY pozice_id;
- SELECT pozice_id, COUNT (pozice_id) pocet FROM a_hr.zamestnanci GROUP BY pozice_id HAVING COUNT(pozice_id)=1;
- SELECT pozice_id FROM a_hr.zamestnanci GROUP BY pozice_id HAVING COUNT(pozice_id)=1;
- SELECT pozice_id FROM a_hr.zamestnanci GROUP BY pozice_id HAVING COUNT(pozice_id)=1;
- SELECT jmeno, prijmeni, pozice_nazev FROM a_hr.zamestnanci JOIN a_hr.prac_pozice
- USING(pozice_id) WHERE pozice_id IN (SELECT pozice_id FROM a_hr.zamestnanci
- GROUP BY pozice_id HAVING COUNT(*)=1); --final
- --3. Z tabulky REGIONY vypište všechny regiony. Ke každému regionu připojte informaci o počtu oddělení v daném regionu. Vypište i regiony, které nemají žádná oddělení. Seřaďte dle počtu oddělení sestupně.
- SELECT region_id, COUNT(*) pocet FROM a_hr.oddeleni JOIN a_hr.adresy
- USING(adresa_id) JOIN a_hr.zeme USING (zeme_id) GROUP BY region_id;
- SELECT region_nazev, NVL(pocet,0) pocet FROM a_hr.regiony
- LEFT JOIN (SELECT region_id, COUNT(*) pocet FROM a_hr.oddeleni JOIN a_hr.adresy
- USING(adresa_id) JOIN a_hr.zeme USING(zeme_id) GROUP BY region_id)
- USING (region_id) ORDER BY 2 DESC;
- --4. Vypište název pozice, na kterou jde měsíčně nejvíce prostředků společnosti.
- SELECT pozice_id, SUM (mzda) FROM a_hr.zamestnanci GROUP BY pozice_id;
- SELECT pozice_nazev FROM a_hr.zamestnanci JOIN a_hr.prac_pozice USING (pozice_id)
- GROUP BY pozice_nazev HAVING SUM (mzda) = (SELECT MAX(SUM(mzda)) FROM a_hr.zamestnanci
- JOIN a_hr.prac_pozice USING (pozice_id) GROUP BY pozice_id);
- --5. Vypište seznam všech zaměstnanců (jmeno, prijmeni) spolu s informací o rozdílu platu oproti svému nadřízenému. Ředitele celé společnosti vynechejte.
- SELECT jmeno, prijmeni, mzda - (SELECT mzda FROM a_hr.zamestnanci nad
- WHERE nad.zamestnanec_id = zam.manazer_id) rozdil FROM a_hr.zamestnanci zam
- WHERE manazer_id IS NOT NULL ORDER BY rozdil;
- --6. Zobrazte seznam všech zaměstnanců (prijmeni, mzda). Do tabulky přidejte textovou konstantu „PODPRUMER“, pokud je mzda zaměstnance v rámci společnosti podprůměrná. Pokud je mzda naopak nadprůměrná zobrazí se text „NADPRUMER“.
- SELECT prijmeni, mzda, 'nadprumer' FROM a_hr.zamestnanci
- WHERE mzda > (SELECT avg(mzda) FROM a_hr.zamestnanci)
- UNION SELECT prijmeni, mzda, 'podprumer' FROM a_hr.zamestnanci
- WHERE mzda < (SELECT avg(mzda) FROM a_hr.zamestnanci);
- --7. Vypište názvy zemí, ve kterých má společnost nejméně poboček. Zajímají nás jen země, ve kterých je alespoň jedna pobočka.
- --8. V rámci celé společnosti nalezněte pozice, které mají nejvyšší a nejnižší průměrnou mzdu. Pozice vypište v rámci jednoho dotazu a ke každému záznamu doplňte textovou konstantu „NEJVYŠŠÍ“ nebo „NEJNIŽŠÍ“, dle výše průměrného platu v rámci společnosti.
Add Comment
Please, Sign In to add comment