私は長い間この問題に苦しんでおり、解決方法がわかりません。説明するのは難しいので、しばらくお待ちください。次の 2 つのテーブルがあります。
表「ユーザー」
UserId PK
Gender
表「フォーム」
FormId PK
UserId1 FK
UserId2 FK
Type
フォームは常に 2 人のユーザーに関連付けられていますが、すべてのユーザーがフォームに関連付けられているわけではありません。ここで、フォームに関連するユーザーの特定の性別のみをカウントしたいと考えています。
結果として、私はsthを持ちたいと思っています。このような:
# | 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
これを解決するためのヒントはありますか?