Advertisement
MagnusArias

BD | group by, having, order by

Apr 18th, 2016
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.00 KB | None | 0 0
  1. Ćw 1. Za pomocą funkcji agregującej podaj liczbę osób powyżej wzrostu 1.75.
  2. Ćw 2. Podaj nazwę działu i liczbę osób pracujących w tym dziale. Kolumnę z wartością liczbową nazwij Liczba osób.
  3. Ćw 3. Podaj średnie wynagrodzenie osób urodzonych po 1965 roku.
  4. Ćw 4. Podaj maksymalny i minimalny wzrost osób, nazywając kolumny: minimalny wzrost , maksymalny wzrost..
  5. Ćw 5. Podaj największą ilość towarów wśród producentów.
  6. Ćw 5a. Podaj najniższą SUMę cen towarów wśród producentów.
  7. Ćw 6. Podaj średni wzrost osób w poszczególnych działach.
  8. Ćw 7. Podaj największą liczbę faktur przypadającą na klienta z województwa łódzkiego
  9. Ćw 8. Wybierz nazwiska i imiona oraz wzrost osób, których wzrost jest powyżej średniej.
  10. Ćw 9. Podaj 3 województwa z największą liczbą miast.
  11. Ćw 10. Wybierz 10 towarów, których różnica między ceną a ceną zakupu jest mniejsza od średniej ceny towarów. Wyniki posortuj malejąco od największej różnicy między ceną a ceną zakupu.
  12. Ćw 11. Podaj te średnie wynagrodzeń pracowników w poszczególnych działach, które przekraczają średnią wynagrodzeń w
  13. całej firmie.
  14.  
  15. USE BazaRelacyjna;
  16. Zad 1.
  17. SELECT COUNT(IdOsoby) FROM Osoby WHERE Wzrost > 1.75
  18.  
  19.  
  20. Zad2.
  21. SELECT d.Opis 'Dzial', COUNT(o.IdOsoby) 'Liczba osob'
  22. FROM Osoby o
  23. JOIN Dzialy d ON o.IdDzialu=d.IdDzialu
  24. GROUP BY d.Opis;
  25.  
  26.  
  27. Zad. 3
  28. SELECT avg(z.Brutto) FROM Osoby o
  29. JOIN Zarobki z ON z.IdOsoby = o.IdOsoby
  30. WHERE o.RokUrodz >1965
  31.  
  32.  
  33. Zad. 4
  34. SELECT  MIN(Wzrost) [Minimum],
  35.         MAX(Wzrost) [Maximum]
  36.         FROM Osoby
  37.  
  38.  
  39. Zad. 5
  40. SELECT MAX(z.liczba) FROM
  41. (
  42.     SELECT p.NazwaProducenta, COUNT(t.IdTowaru) liczba FROM Producenci p
  43.     JOIN Towar t ON t.IdProducenta =p.IdProducenta
  44.     GROUP BY p.NazwaProducenta
  45. ) z
  46.  
  47.  
  48. ZAD. 5a
  49. SELECT MIN(z.suma) FROM
  50. (
  51.     SELECT p.NazwaProducenta, SUM(t.Cena) suma FROM Producenci p
  52.     JOIN Towar t ON t.IdProducenta =p.IdProducenta
  53.     GROUP BY p.NazwaProducenta
  54. ) z
  55.  
  56.  
  57. Zad. 6
  58. SELECT d.Opis, AVG(o.Wzrost) FROM Osoby o
  59. JOIN Dzialy d ON d.IdDzialu=o.IdDzialu
  60. GROUP BY d.Opis
  61.  
  62.  
  63. Zad. 7
  64. SELECT MAX(z.faktury) FROM (
  65.     SELECT k.IdKlienta, COUNT (f.IdFaktury) faktury FROM Klienci k
  66.     JOIN Miasta m ON m.IdMiasta =k.IdMiasta
  67.     JOIN Wojewodztwa w ON w.IdWojewodztwa=m.IdWojewodztwa
  68.     JOIN Faktury f ON f.IdKlienta = k.IdKlienta
  69.     WHERE w.Województwo='łódzkie'
  70.     GROUP BY k.IdKlienta
  71. ) z
  72.  
  73.  
  74. Zad. 8
  75. SELECT Nazwisko, Imie, Wzrost FROM Osoby
  76. WHERE Wzrost > ( SELECT AVG(Wzrost) FROM Osoby)
  77.  
  78.  
  79. Zad.9
  80. SELECT TOP 3 w.Województwo, COUNT(m.IdMiasta) liczba FROM Wojewodztwa w
  81. JOIN Miasta m ON w.IdWojewodztwa =m.IdWojewodztwa
  82. GROUP BY w.Województwo
  83. ORDER BY liczba DESC
  84.  
  85. Zad. 10
  86. SELECT TOP 10 NazwaTowaru, (Cena-CenaZakupu) AS róznica
  87. FROM Towar WHERE (Cena-CenaZakupu) < (SELECT avg(Cena) FROM Towar)
  88. ORDER BY róznica DESC
  89.  
  90. Zad. 11
  91. SELECT d.Opis, AVG(z.Brutto) srednia_dzialu FROM Osoby o
  92. JOIN Dzialy d ON d.IdDzialu = o.IdDzialu
  93. JOIN Zarobki z ON z.IdOsoby =o.IdOsoby
  94. GROUP BY d.Opis
  95. HAVING AVG(z.Brutto) > (SELECT avg(Brutto) FROM Zarobki)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement