0

我有这样的数据库:

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

4

2 回答 2

2

您可以自己加入答案表。这将返回男性用户给出的“是”答案列表:

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(*)

在这里看小提琴。

于 2013-01-25T15:03:59.130 回答
1
SELECT  COUNT(*) totalUsers
FROM
    (
        SELECT  user_id
        FROM    tableName
        WHERE   form_answers IN ('YES','M')
        GROUP   BY user_ID
        HAVING  COUNT(*) = 2
    ) s
于 2013-01-25T15:17:47.510 回答