Strona główna › Pytania INF.03 › Pytanie 2124
INF.03 · pytanie #2124
SELECT miasto, AVG(pensja) FROM pracownicy GROUP BY miasto;Podane zapytanie wybierze:
- Anazwy miast bez powtórzeń oraz średnią pensję dla każdego z nich.
- Bnazwy miast z powtórzeniami oraz sumę pensji dla każdego z nich.
- Cnazwy miast z powtórzeniami oraz średnią pensję dla każdego z nich.
- Dnazwy miast bez powtórzeń oraz sumę pensji dla każdego z nich.
Poprawna odpowiedź: A. nazwy miast bez powtórzeń oraz średnią pensję dla każdego z nich.
Kliknij odpowiedź, którą uważasz za poprawną.
Wyjaśnienie
Poprawnie – w tym zapytaniu kluczowe są dwie rzeczy: funkcja agregująca AVG(pensja) oraz klauzula GROUP BY miasto. Funkcja AVG oblicza średnią arytmetyczną z wartości w danej kolumnie, a nie sumę. To znaczy, że dla każdego miasta baza danych zbierze wszystkie rekordy pracowników z tym miastem, policzy z ich pensji średnią i zwróci jeden wiersz z wynikiem. GROUP BY powoduje, że kolumna miasto staje się kolumną grupującą, więc w wyniku każde miasto pojawi się tylko raz – bez powtórzeń, niezależnie od tego, ilu pracowników z danego miasta jest w tabeli. W praktyce takie zapytanie jest bardzo często używane w raportach i analizach: można w ten sposób sprawdzić, w którym mieście średnia pensja jest najwyższa, porównać poziomy wynagrodzeń między oddziałami firmy, czy przygotować zestawienie dla działu HR albo zarządu. Dobrą praktyką jest nadawanie aliasów kolumnom z funkcjami agregującymi, np.: SELECT miasto, AVG(pensja) AS srednia_pensja FROM pracownicy GROUP BY miasto; Dzięki temu wynik jest czytelniejszy, zwłaszcza gdy dane eksportuje się dalej, np. do Excela lub do aplikacji webowej. Warto też pamiętać, że w standardowym SQL w części SELECT przy użyciu GROUP BY można umieszczać tylko kolumny, po których grupujemy, oraz funkcje agregujące (AVG, SUM, COUNT, MIN, MAX itd.). Jeżeli spróbujemy dodać tam inną zwykłą kolumnę bez agregacji, większość silników bazodanowych zgłosi błąd albo zwróci nieprzewidywalne wartości. Z mojego doświadczenia znajomość takich prostych konstrukcji jak GROUP BY + AVG to absolutna podstawa przy projektowaniu raportów i aplikacji, które polegają na danych biznesowych.
🤖 Wyjaśnienie generowane przez AI – weryfikuj w oficjalnych źródłach.