SELECT PeopleTable.gender, COUNT(*) AS GenderCount
FROM ListTable
INNER JOIN PeopleTable ON ListTable.userID = PeopleTable.id
GROUP BY PeopleTable.gender
А если нужен и
ListTable
, у которых нет соответствия в
PeopleTable
SELECT ISNULL(PeopleTable.gender, '-') [Пол], COUNT(*) [К-во]
FROM ListTable
LEFT JOIN PeopleTable ON ListTable.userID = PeopleTable.id
GROUP BY ROLLUP (PeopleTable.gender)
UNION
SELECT ' ', COUNT(*)
FROM ListTable
ORDER BY 1 DESC, 2
Две последние строчки показывают общее количество. Если они не совпадают выполните проверку.
Руководство.
DBCC CHECKTABLE ('PeopleTable')
DBCC CHECKTABLE ('ListTable')