SQL i zliczanie danych unikalnych

0

Mam trzy tabele:

auta( numer_rej, marka, rocznik, pesel_wlasciciela)
osoby( pesel, imie, nazwisko, typ_miejscowosci)
wypadki( id, data_wypadku, numer_rejestracyjny, strata)

schemat.png

i mam odpowiedzieć na pytanie:

Podaj, ilu właścicieli samochodów miało co najmniej jeden wypadek.
Uwaga: Właściciela odnotowanego w kilku wypadkach liczymy jeden raz.

i stworzyłem takie zapytanie (w Accessie, żeby było jasne co do dialektów):

SELECT DISTINCT Osoby.imie, Osoby.nazwisko
FROM (Auta INNER JOIN Wypadki ON Auta.numer_rej = Wypadki.numer_rejestracyjny) INNER JOIN Osoby ON Auta.pesel_wlasciciela = Osoby.pesel;

i mam listę tych osób. Ale nie wiem jak je zliczyć, bo jak zamienię Osoby.imie, Osoby.nazwisko na Count(*) to nie działa.

0

Skorzystaj z exists i subquery np.

SELECT *
FROM Osoby
WHERE EXISTS 
  (SELECT *
   FROM Auta
   INNER JOIN Wypadki ON Auta.numer_rej = Wypadki.numer_rejestracyjny
   WHERE Auta.pesel_wlasciciela = Osoby.pesel);

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