1

私のユーザーは2つの異なる質問に答えます。それらは、それぞれ1行として私のanswers_tableに追加されます。最初は簡単に思える質問に回答したユーザーの数を数えようとしています。カウント(*)して2で割ります。はい!ただし、ユーザーは新しい質問を追加することができるため、突然3つの質問が発生する可能性があります。たとえば、しばらくの間2つの質問があり、その後3つの質問があった場合、すべての回答/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
4

1 に答える 1

1

私が提案する解決策は、回答に対してセッションIDまたは自動生成されたキーを保存して、1人の人物からの2、3、またはそれ以上の回答の「セッション」を一意に識別することです。

クエリは単純に

SELECT COUNT(DISTINCT session_id) totNum
FROM login_answers

識別可能なキーがない現在のスキーマでは、可能であれば、質問に正しく答えることは非常に困難です。

于 2012-10-22T23:43:45.823 に答える