Zapytanie SQL, aby policzyć, ile razy pewne wartości występują w wielu wierszach
Przypuśćmy, że mam tabelę danych wyborczych, nazwijmy ją WYBORAMI, z jednym rzędem na wyborcę na wybory, tak:
VoterID ElectionID
A 1
A 2
B 1
C 2
D 3
E 1
E 2
Chcę znać liczbę wyborców, którzy głosowali zarówno w wyborach 1, jak iw wyborach 2; Nie dbam o nikogo innego. Liczba powinna wynosić 2 (wyborca A i Voter E).
Czy coś takiego działa:
select count(Elections) as NumVoters
from (
select VoterID, ElectionID, count(ElectionID) as Elections
from ELECTIONS
where ElectionID=1 or ElectionID=2
group by VoterID
having (count(ElectionID)=2)
) x;
AKTUALIZACJA: To jest moje pierwsze pytanie tutaj i jestem zdumiony tym, jak pomocni i szybcy byli ludzie. Poprawiłem powyższe zapytanie, aby naprawić brak aliasu na końcu i dodać kończący średnik.
DZIĘKUJĘ CI!