只计算男性用户的答案

时间:2013-01-25 15:00:42

标签: mysql database

我有这样的数据库:

+-----+---------+--------------+
| 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)用户给出了多少“是”答案?它不必被计算......它可以只选择男性用户的回答“是”的所有行。

2 个答案:

答案 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