Mam pewne zadanko z SQLa:
Dana jest tabela pracownicy o kolumnach imie, nazwisko, pensja.
Napisz zapytanie, które zwróci wszystkich pracowników, których nazwiska istnieją w bazie 3 lub wiecej razy.
Przykladowo zapytanie zwraca 2 rekordy:
grzegorz | nowak | 1600
marek | nowak | 1800
darek | nowak | 1200
Rozwiązałem je tak:
SELECT p1.nazwisko, p1.pensja FROM pracownicy AS p1 LEFT JOIN (SELECT count(id) AS c, nazwisko FROM pracownicy GROUP BY nazwisko) AS p2 ON p1.nazwisko=p2.nazwisko WHERE p2.c >= 3
Czy to jest wydajny sposób weług was ? Czy można to napisać inaczej