我有这样的数据库:
+-----+---------+--------------+
| id | user_id | form_answers |
+-----+---------+--------------+
| 1 | 1 | yes |
| 2 | 1 | M |
| 3 | 2 | yes |
| 4 | 2 | M |
| 5 | 3 | no |
| 6 | 3 | F |
| 7 | 4 | no |
| 8 | 4 | M |
+-----+---------+--------------+
有一个表单插入到此数据库中。它有一个问题和下拉列表(男性的女性)。是否有可能计算出男性(M)用户给出了多少“是”答案?它不必被计算......它可以只选择男性用户的回答“是”的所有行。
答案 0 :(得分:2)
您可以自己加入答案tabe。这将返回男性用户给出的“是”答案列表:
SELECT a1.*
FROM answers a1 inner join answers a2
on a1.user_id=a2.user_id
and a1.form_answers='yes'
and a2.form_answers='M'
计算行数,只需用以下代码替换选择行:
SELECT COUNT(*)
请参阅小提琴here。
答案 1 :(得分:1)
SELECT COUNT(*) totalUsers
FROM
(
SELECT user_id
FROM tableName
WHERE form_answers IN ('YES','M')
GROUP BY user_ID
HAVING COUNT(*) = 2
) s