Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MYSQL] Zapytanie z AVG()
=kokos=
post 2.06.2009, 14:02:36
Post #1





Grupa: Zarejestrowani
Postów: 114
Pomógł: 0
Dołączył: 6.08.2006

Ostrzeżenie: (0%)
-----


mam tabelę

id || nazwisko || placa || id_wydzial

potrzebuję skonstruować zapytanie które wyświetli mi średnią płacę w wydziale/wydziałach, w którym średnia jest wyższa od średniej płacy w całej firmie.

zapytanie

  1. SELECT AVG(placa) FROM pracownicy [WHERE ...] GROUB BY id_wydzial


wyświetla średnie płace w danych wydziałach.

w jaki sposób mogę sformułować warunek aby uzyskać to co chcę uzyskać?

Ten post edytował =kokos= 2.06.2009, 14:03:57


--------------------
Początkujący
Go to the top of the page
+Quote Post
golaod
post 2.06.2009, 14:07:51
Post #2





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


  1. SELECT *,AVG(placa) AS srednia_wydzialu FROM pracownicy WHERE srednia_wydzialu >= (SELECT AVG(placa) FROM pracownicy) GROUP BY id_wydzial


Tylko strzelam tongue.gif

Ten post edytował golaod 2.06.2009, 14:08:02
Go to the top of the page
+Quote Post
=kokos=
post 2.06.2009, 14:33:44
Post #3





Grupa: Zarejestrowani
Postów: 114
Pomógł: 0
Dołączył: 6.08.2006

Ostrzeżenie: (0%)
-----


dzięki za odpowiedź jednak to zapytanie taki błąd generuje:

unknow column 'srednia_wydzialu' in 'where clause'

ale trochę pokombinuję tym tropem ;]

Doszedłem do tego smile.gif

  1. SELECT AVG(placa) AS srednia_wydzialu FROM pracownicy GROUP BY id_wydzial HAVING(srednia_wydzialu) > (SELECT AVG(placa) FROM pracownicy);


dzięki za pomoc


--------------------
Początkujący
Go to the top of the page
+Quote Post
golaod
post 2.06.2009, 14:36:18
Post #4





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


To podałbyś to rozwiązanie tutaj...komuś mogłoby się przydać
  1. SELECT * FROM ( SELECT *, AVG(placa) AS srednia
  2. FROM pracownicy GROUP BY id_wydzial
  3. ) AS T
  4. WHERE T.srednia>= (SELECT AVG(placa) FROM pracownicy)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:29