Polecenie SQL zliczające ilość wystąpień wierszy

0

Witam, mam pewien problem z wyciągnieciem danych z poniższej bazy.
Chodzi o to, że mam pobrać nazwisko i imie pacjentów pomiędzy 40 a 50 rokiem życia którzy mieli przynajmniej 3 wizyty u ortopedy.

Moja baza z danymi wygląda tak:

0f22a00b8f.png
Zapytanie które na razie mam to coś takiego:

select pacjent.ID_pacjent, pacjent.imie, pacjent.nazwisko from pacjent 
inner join wizyta on pacjent.ID_pacjent = wizyta.ID_pacjent inner join lekarz on wizyta.ID_lekarz = lekarz.ID_lekarz 
inner join lekarz_specjalnosc on lekarz.ID_lekarz = lekarz_specjalnosc.ID_lekarz 
inner join specjalnosc on lekarz_specjalnosc.ID_specjalnosc = specjalnosc.ID_specjalnosc
where specjalnosc.nazwa = 'ortopeda' and pacjent.wiek between 40 and 50; 

i zwaraca mi coś takiego:
c8374cb23b.png

Główny problem mój leży w tym ze nie wiem jak to policzyć żeby mi wyświetliło po prostu samo "Adam Kowalski" - gdzie i jak warunek zliczania dać?

1
select pacjent.ID_pacjent, pacjent.imie, pacjent.nazwisko from pacjent 
inner join wizyta on pacjent.ID_pacjent = wizyta.ID_pacjent inner join lekarz on wizyta.ID_lekarz = lekarz.ID_lekarz 
inner join lekarz_specjalnosc on lekarz.ID_lekarz = lekarz_specjalnosc.ID_lekarz 
inner join specjalnosc on lekarz_specjalnosc.ID_specjalnosc = specjalnosc.ID_specjalnosc
where specjalnosc.nazwa = 'ortopeda' and pacjent.wiek between 40 and 50
group by 1,2,3 
having Count(*)>=3; 
0

Bedę miał jeszcze jedno pytanie, chciałbym wybrać lekarza który miał nawięcej wizyt.
Poniższym poleceniem dostaje odp ile każdy z lekarzy miał wizyt a da się idąc tym trope wybrać wiersz gdzie ta wartość jest maksymalna?

select *,count(wizyta.ID_wizyta) as IloscOdwiedzin from lekarz inner join wizyta on lekarz.ID_lekarz = wizyta.ID_lekarz
group by lekarz.ID_lekarz;

7b549f031d.png

1

Oczywiście, że da się, albo w havingu. Można też sortowaniem czyli w SELECT dać TOP 1 a na końcu ORDER BY TwojaKolumna DESC przy czym ta opcja jest najmniej poprawna ze względu na operacje sortowania.

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