Advertisement
kamasazi99

Untitled

Mar 24th, 2020
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.24 KB | None | 0 0
  1. use kadry;
  2. -- =========================================================================================================ZADANIE 4.1
  3. -- 1. Jakie jest średnie wynagrodzenie i liczba pracowników zatrudnionych w dziale o ID równym 110 ?
  4. SELECT round(avg(pobory),2) as "srednie zarobki",count(imie) as "ilosc osob w dziale 110" FROM pracownicy where dzial_id='110';
  5. -- 2. Jaka jest najwyższa, najniższa, suma i średnia pensja wszystkich pracowników?
  6. Select max(pobory) as "najwyzsza pensja", min(pobory) as "najnizsza pensja",round(avg(pobory),2) as "srednia pensja",sum(pobory) as "suma pensji" from pracownicy;
  7. -- 3. Sporządź zestawienie kodów stanowisk i ilości pracowników zatrudnionych na tych stanowiskach.
  8. select stanowisko_id as "kod stanowiska",count(*) as"Ilosc osob pracujacych na stanowisku" from pracownicy group by stanowisko_id;
  9. -- 4. Jaka jest różnica między najwyższą i najniższą pensją.
  10. Select max(pobory)-min(pobory) as "roznica między najwyższą i najniższą pensją " from pracownicy;
  11. -- 5. Sporządź listę ID szefów, uporządkowaną rosnąco, oraz pobory najniżej opłacanego pracownika dla tego szefa.
  12. select szef_id as "Id szefa",min(pobory) as "pobory najniżej opłacanego pracownika" from pracownicy group by szef_id order by szef_id;
  13. -- 6. Sporządź listę ID działów i łączne pobory w każdym dziale.
  14. select dzial_id as "id działu", sum(pobory) "pobory"from pracownicy group by dzial_id;
  15. -- 7. Oblicz średnie pobory dla każdego ID stanowiska, oprócz programistów (ID: IT_PROG).
  16. Select stanowisko_id as "id stanowiska", round(avg(pobory),2) as "srednie pobory" from pracownicy where stanowisko_id!="IT_PROG" group by stanowisko_id ;
  17. -- 8. Znajdź, tylko dla działu o ID równym 110, sumę poborów, maksimum, minimum oraz średnie pobory pracowników.
  18. Select max(pobory) as "najwyzsza pensja", min(pobory) as "najnizsza pensja",round(avg(pobory),2) as "srednia pensja",sum(pobory) as "suma pensji" from pracownicy where dzial_id="110";
  19. -- 9. Sporządź listę ID stanowisk z maksymalnymi poborami pracowników, dla tych stanowisk, w których maksymalne pobory są większe lub równe 4000.
  20. Select stanowiska.stanowisko_id as "id stanowiska", max(pobory) as "maksymalne pobory" from pracownicy,stanowiska where stanowiska.max_pobory>=4000 and pracownicy.stanowisko_id=stanowiska.stanowisko_id group by stanowiska.stanowisko_id;
  21. -- 10. Sporządź listę ID stanowisk z średnimi poborami dla wszystkich działów zatrudniających więcej niż 10 pracowników.
  22. Select stanowisko_id as "id stanowiska",round(avg(pobory),2) as "srednie pobory" from pracownicy group by stanowisko_id having count(pracownicy.imie)>10;
  23.  
  24. -- =========================================================================================================ZADANIE 4.2
  25. -- 1. Jakie jest średnie wynagrodzenie i liczba pracowników zatrudnionych w dziale 'Administration' ?
  26. Select round(avg(pobory),2) as "srednie wynagrodzenie", count(pracownicy.pracownik_id) as "liczba pracownikow" from pracownicy,dzialy where dzial_nazwa="Administration" ;
  27. -- 2. Jaka jest najwyższa, najniższa, suma i średnia pensja wszystkich pracowników w dziale 'Marketing' ?
  28. Select max(pobory) as "najwyzsza pensja", min(pobory) as "najnizsza pensja", sum(pobory) as "suma pensji", round(avg(pobory),2) as "srednia pensji" from pracownicy, dzialy where dzial_nazwa="Marketing" and pracownicy.dzial_id = dzialy.dzial_id;
  29. -- 3. Sporządź zestawienie stanowisk i ilości pracowników zatrudnionych na tych stanowiskach.
  30. select stanowisko_nazwa as "stanowisko",count(*) as"Ilosc osob pracujacych na stanowisku" from pracownicy,stanowiska where stanowiska.stanowisko_id = pracownicy.stanowisko_id group by pracownicy.stanowisko_id;
  31. -- 4. Jaka jest różnica między najwyższą i najniższą pensją w dziale 'Purchasing'.
  32. Select max(pobory)-min(pobory) as "roznica między najwyższą i najniższą pensją w dziale Purchasing " from pracownicy,dzialy where dzial_nazwa="Purchasing" and pracownicy.dzial_id = dzialy.dzial_id ;
  33. -- 5. Sporządź listę szefów, uporządkowaną rosnąco, oraz pobory najniżej opłacanego pracownika dla tego szefa.
  34. select szef_id as "Id szefa",min(pobory) as "pobory najniżej opłacanego pracownika" from pracownicy group by szef_id order by szef_id;
  35. -- 6. Sporządź listę działów i łączne pobory w każdym dziale.
  36. select dzial_nazwa as "nazwa działu", sum(pobory) "pobory"from pracownicy,dzialy where pracownicy.dzial_id = dzialy.dzial_id group by pracownicy.dzial_id;
  37. -- 7. Oblicz średnie pobory dla każdego stanowiska, oprócz programistów (ID: IT_PROG).
  38. Select stanowisko_nazwa as "nazwa stanowiska", round(avg(pobory),2) as "srednie pobory" from pracownicy,stanowiska where pracownicy.stanowisko_id!="IT_PROG" and stanowiska.stanowisko_id = pracownicy.stanowisko_id group by pracownicy.stanowisko_id ;
  39. -- 8. Znajdź, tylko dla działu `Human Resources` (Kadry), sumę poborów, maksimum, minimum oraz średnie pobory pracowników.
  40. Select max(pobory) as "najwyzsza pensja", min(pobory) as "najnizsza pensja", sum(pobory) as "suma pensji", round(avg(pobory),2) as "srednia pensji" from pracownicy, dzialy where dzial_nazwa="Human Resources" and pracownicy.dzial_id = dzialy.dzial_id;
  41. -- 9. Sporządź listę stanowisk z maksymalnymi poborami pracowników, dla tych stanowisk, w których maksymalne pobory są większe lub równe 4 tys.
  42. Select stanowiska.stanowisko_nazwa as "nazwa stanowiska", max(pobory) as "maksymalne pobory" from pracownicy,stanowiska where stanowiska.max_pobory>=4000 and pracownicy.stanowisko_id = stanowiska.stanowisko_id group by stanowiska.stanowisko_id;
  43. -- 10. Sporządź listę stanowisk z średnimi poborami dla wszystkich działów zatrudniających więcej niż 10 pracowników.
  44. Select stanowisko_nazwa as "nazwa stanowiska",round(avg(pobory),2) as "srednie pobory" from pracownicy,stanowiska where pracownicy.stanowisko_id = stanowiska.stanowisko_id group by pracownicy.stanowisko_id having count(pracownicy.imie)>10;
  45. Select stanowisko_nazwa as "nazwa stanowiska",round(avg(pobory),2) as "srednie pobory" from pracownicy,stanowiska where pracownicy.stanowisko_id = stanowiska.stanowisko_id group by pracownicy.dzial_id having count(pracownicy.imie)>10;
  46. -- =========================================================================================================ZADANIE 4.3
  47. -- 1. Znajdź imie, nazwisko, stanowisko, identyfikator działu i nazwę działu dla pracowników, którzy pracują w Londynie.
  48. Select imie, nazwisko,stanowisko_nazwa as "stanowisko", dzialy.dzial_id as "identyfikator działu", dzialy.dzial_nazwa as "nazwa dzialu" from pracownicy,dzialy,adresy,stanowiska where miasto = "London" and pracownicy.stanowisko_id=stanowiska.stanowisko_id and adresy.adres_id=dzialy.adres_id;
  49. -- 2. Sporządź zestawienie nazwę działów i liczby pracowników w dziale.
  50. Select dzialy.dzial_nazwa as "nazwa dzialu", count(imie) as "liczba pracownikow" from dzialy, pracownicy where pracownicy.dzial_id = dzialy.dzial_id group by pracownicy.dzial_id;
  51. -- 3. Sporządź zestawienie informacje o wszystkich działach w formacie: identyfikator działu z jego nazwą oraz imię i nazwisko szefa działu.
  52. select dzialy.dzial_id as "identyfikator dzialu", dzial_nazwa as "nazwa dzialu", imie, nazwisko from dzialy, pracownicy where dzialy.szef_id = pracownicy.pracownik_id;
  53. -- 4. Sporządź historię zatrudnienia (kolumny z tabeli historia_zatrudnienia), dla wszystkich pracowników, którzy zarabiają więcej niż 5tys.
  54. Select historia_zatrudnienia.pracownik_id as "id pracownika", data_poczatkowa as "data zatrudnienia", data_koncowa as "data zwolnienia", historia_zatrudnienia.stanowisko_id as "Id stanowiska", historia_zatrudnienia.dzial_id as "id dzialu" from historia_zatrudnienia,pracownicy where pobory>5000 and pracownicy.pracownik_id=historia_zatrudnienia.pracownik_id ;
  55. -- 5. Napisz zapytanie, które wyświetli nazwę działu, imię, nazwisko, datę zatrudnienia, pobory dla wszystkich menedżerów, którzy pracują dłużej niż 10 lat (wg daty bieżacej).
  56. select dzial_nazwa as "nazwa dzialu", imie, nazwisko, data_zatr as "data zatrudnienia", pobory from dzialy, pracownicy, stanowiska where pracownicy.dzial_id = dzialy.dzial_id and curdate() > DATE_ADD(data_zatr, INTERVAL 10 YEAR) and pracownicy.stanowisko_id = stanowiska.stanowisko_id and stanowiska.stanowisko_nazwa like "%Manager%";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement