我的用户回答了两个不同的问题,它们被添加到我的answers_table中,每行一行。我试图计算有多少用户已经回答了我的问题,这一开始看起来很简单。计数(*)并除以2.是的!但是:用户可以随时添加新问题,所以突然可能有三个问题,如果有一段时间有两个问题,那么所有答案/ 3都会变成不正确的用户数,例如三个问题!
有人可以找出这样做的查询吗?到目前为止我已经
了SELECT COUNT(DISTINCT date) as totNum FROM login_answers
但它没有花时间考虑。这意味着我只知道当天的答案总数,而不知道那天有多少问题可供使用。
这是我的表:
qid是QuestionID,所以我猜那是从哪里开始的?
id qid answer date deviceID
1502 2 2 2012-10-19 08:42:41 7
1503 1 3 2012-10-19 08:51:53 7
1504 2 2 2012-10-19 08:51:53 7
1505 1 4 2012-10-19 09:05:23 7
1506 2 2 2012-10-19 09:05:23 7
1507 1 4 2012-10-19 09:40:59 7
答案 0 :(得分:1)
我建议的解决方案是将会话ID或某些自动生成的密钥存储在答案中,以便唯一标识来自一个人的2个,3个或更多答案的“会话”。
查询只是
SELECT COUNT(DISTINCT session_id) totNum
FROM login_answers
如果您当前的架构没有可识别的密钥,则很难在可能的情况下正确回答您的问题。