我很久以来就一直在努力解决这个问题,并且不知道如何解决它。我很难形容,所以请耐心等待。有两个表:选择与另一个表有关的行的计数字段
表“用户”
UserId PK
Gender
表“表格”
FormId PK
UserId1 FK
UserId2 FK
Type
形式,总涉及两个用户,但并不是所有的用户都有相关的形式。现在,我只想计算具有相关表单的用户的指定性别。
因此,我想拥有某物。像这样:
# | Gender | GenderCount
1 | male | 43
2 | female | 12
3 | trans | 2
我尝试以下SQL脚本,但结果不显着(所有GenderCount的总和大于用户的实际数量)
SELECT u.Gender AS 'Gender', COUNT(u.Gender) AS 'GenderCount'
FROM Users u, Forms f
WHERE ((f.UserId1 = u.UserId)
OR (f.UserId2 = u.UserId))
AND (Type = 'Foo')
GROUP BY Gender
ORDER BY GenderCount
DESC
任何提示来解决这个?
为什么不是COUNT(DISTINCT u.Gender)? –
你正在使用哪个引擎? – Sebas
@WillPalmer如果我使用COUNT(DISTINCT u.Gender),我会得到'male => 1,female => 1,trans => 1' –