Które zapytanie SQL dla tabeli pracownicy utworzonej według schematu: id, imie, nazwisko, plec, zarobek, obliczy osobno średni zarobek kobiet i średni zarobek mężczyzn?
Odpowiedzi
Informacja zwrotna
Poprawne zapytanie SQL, które oblicza średni zarobek osobno dla kobiet i mężczyzn, to SELECT AVG(zarobek) FROM pracownicy GROUP BY plec. Użycie funkcji AVG() pozwala na obliczenie średniej wartości kolumny 'zarobek', a GROUP BY plec umożliwia grupowanie wyników według wartości w kolumnie 'plec', co w tym przypadku oznacza grupowanie według płci. W rezultacie zapytanie zwróci dwie średnie: jedną dla kobiet (plec='k') i drugą dla mężczyzn (plec='m'). To podejście jest zgodne ze standardem SQL, który pozwala na agregację danych w oparciu o różne grupy. Przykładowo, jeśli tabela 'pracownicy' zawiera dane z różnymi zarobkami dla kobiet i mężczyzn, to to zapytanie da nam jasny obraz różnic w wynagrodzeniach, co może być cenne dla analiz społecznych i ekonomicznych. Analiza danych w taki sposób jest kluczowa w zarządzaniu zasobami ludzkimi oraz w tworzeniu strategii wynagrodzeń.
Pierwsza opcja nie jest poprawna, ponieważ nie oblicza średnich zarobków osobno dla każdej płci, lecz zwraca jedną średnią, jeśli w tabeli są pracownicy różnych płci. Kolejne zapytanie, które wykorzystuje alias, jest błędne, ponieważ użycie 'AS sredni_zarobek' nie wprowadza żadnej funkcjonalności do obliczania średni dla płci. Nie definiuje ono kontekstu grupowania danych, przez co zwróci jedną wartość, a nie różne średnie dla każdej płci. Następnie, zapytanie z warunkiem WHERE plec='k' AND plec='m' jest całkowicie niepoprawne, ponieważ nie można, aby jedna wartość plec jednocześnie była równa 'k' i 'm'. Takie zapytanie nic nie zwróci, ponieważ nie znajdzie żadnych wierszy spełniających ten warunek. Ostatnia odpowiedź z GROUP BY plec HAVING plec='k' AND plec='m' również zawiera błędne założenia. Klauzula HAVING służy do filtrowania grup, ale podobnie jak w poprzednich przypadkach warunek 'plec='k' AND plec='m'' nie ma sensu, ponieważ nie można grupować wyników w ten sposób. Dlatego wszystkie te zapytania nie osiągną celu związanego z obliczeniem średnich zarobków osobno dla kobiet i mężczyzn.