Proste zapytanie SQL

0

Mam "Wyświetlić czytelnika, który wypożyczył najwięcej książek"

Stworzyłem sobie już takie zapytanie, które pokazuje dane dla wszystkich czytelników i przedstawia w postaci Nazwisko czytelnika | liczba wypożyczeń i posortowałem je w kolejności malejącej:

SELECT CZYTELNIK.NAZWISKO, COUNT(WYPOZYCZENIA.ID_CZYT) AS "LICZBA WYPOZYCZEN CZYTELNIKA" FROM WYPOZYCZENIA
LEFT JOIN CZYTELNIK
ON WYPOZYCZENIA.ID_CZYT = CZYTELNIK.ID_CZYT
GROUP BY CZYTELNIK.NAZWISKO ORDER BY "LICZBA WYPOZYCZEN CZYTELNIKA" DESC 

teraz chciałbym aby został mi wyświetlony tylko 1 rekord. Próbowałem jakoś z top 1 albo rownum <= 1 ale za każdym razem wywalało błąd.

0

Podaj jak próbowałeś i jaki błąd dostałeś. I o jakim silniku mówimy bo TOP jest w mssql, w mysql używa sie LIMIT...

1
  1. Masz złe grupowanie. Chyba że zapewnisz unikalność nazwisk w bazie.
  2. Niepotrzebny LEFT JOIN. Zwykły JOIN wystarczy.
  3. Zakładając że to Ora, to:
SELECT * FROM (twoje zapytanie) x WHERE rownum<=1
0

Dokładnie skorzystaj z funkcji podzapytania jak kolega wyżej podpowiada. W przypadku mssql będzie to.
SELECT TOP 1 FROM (twoje zapytanie);

1 użytkowników online, w tym zalogowanych: 0, gości: 1