【发布时间】:2020-01-06 15:31:10
【问题描述】:
这个尝试有点超出我的 SQL/查询技能,所以我正在寻求关于如何完成它的建议。
总结:
有一个记录用户尝试回答一些测验问题的表格。
- 当前问题
- 提供答案
- 正确答案
这是表格布局:
create table quiz_answers(
id int,
submit_date datetime,
session_id varchar(255),
quiz_name varchar(255),
question_num varchar(255),
answer varchar(255),
correct_answer varchar(255),
user_ip varchar(255)
);
insert into quiz_answers(id, submit_date, session_id, quiz_name, question_num, answer, correct_answer, user_ip) values
(1, '2019-09-03 11:39:07', 'xxxxx', 'q1_xxx_quiz', 'q1_question0', 'answer1', 'correct_answer', 'xx.xx.xx.xxxx'),
(2, '2019-09-03 11:39:07', 'xxxxx', 'q1_xxx_quiz', 'q1_question0', 'answer2', 'correct_answer', 'xx.xx.xx.xxxx'),
(3, '2019-09-03 11:39:07', 'xxxxx', 'q1_xxx_quiz', 'q1_question0', 'correct_answer', 'correct_answer', 'xx.xx.xx.xxxx'),
(4, '2019-09-03 11:39:07', 'xxxxx', 'q1_xxx_quiz', 'q1_question0', 'answer1', 'correct_answer', 'xx.xx.xx.xxxx'),
(5, '2019-09-03 11:39:07', 'xxxxx', 'q1_xxx_quiz', 'q1_question0', 'answer3', 'correct_answer', 'xx.xx.xx.xxxx'),
(6, '2019-09-03 11:39:07', 'xxxxx', 'q1_xxx_quiz', 'q1_question0', 'answer4', 'correct_answer', 'xx.xx.xx.xxxx'),
(7, '2019-09-03 11:39:07', 'xxxxx', 'q1_xxx_quiz', 'q1_question0', 'answer3', 'correct_answer', 'xx.xx.xx.xxxx'),
(8, '2019-09-03 11:39:07', 'xxxxx', 'q1_xxx_quiz', 'q1_question0', 'correct_answer', 'correct_answer', 'xx.xx.xx.xxxx'),
(9, '2019-09-03 11:39:07', 'xxxxx', 'q1_xxx_quiz', 'q1_question0', 'answer0', 'correct_answer', 'xx.xx.xx.xxxx'),
(10, '2019-09-03 11:39:07', 'xxxxx', 'q1_xxx_quiz', 'q1_question1', 'answer1', 'correct_answer', 'xx.xx.xx.xxxx'),
(11, '2019-09-03 11:39:07', 'xxxxx', 'q1_xxx_quiz', 'q1_question1', 'answer1', 'correct_answer', 'xx.xx.xx.xxxx'),
(12, '2019-09-03 11:39:07', 'xxxxx', 'q1_xxx_quiz', 'q1_question1', 'answer3', 'correct_answer', 'xx.xx.xx.xxxx'),
(13, '2019-09-03 11:39:07', 'xxxxx', 'q1_xxx_quiz', 'q1_question1', 'answer4', 'correct_answer', 'xx.xx.xx.xxxx'),
(14, '2019-09-03 11:39:07', 'xxxxx', 'q1_xxx_quiz', 'q1_question1', 'answer2', 'correct_answer', 'xx.xx.xx.xxxx'),
(15, '2019-09-03 11:39:07', 'xxxxx', 'q1_xxx_quiz', 'q1_question1', 'answer2', 'correct_answer', 'xx.xx.xx.xxxx'),
(16, '2019-09-03 11:39:07', 'xxxxx', 'q1_xxx_quiz', 'q1_question1', 'correct_answer', 'correct_answer', 'xx.xx.xx.xxxx'),
(17, '2019-09-03 11:39:07', 'xxxxx', 'q1_xxx_quiz', 'q1_question0', 'correct_answer', 'correct_answer', 'xx.xx.xx.xxxx');
select * from quiz_answers;
| | id | submit_date | session_id | quiz_name | question_num | answer | correct_answer | user_ip |
|----|----|---------------------|------------|-------------|--------------|----------------|----------------|---------------|
| 1 | 1 | 03.09.2019 11:39:07 | xxxxx | q1_xxx_quiz | q1_question0 | answer1 | correct_answer | xx.xx.xx.xxxx |
| 2 | 2 | 03.09.2019 11:39:07 | xxxxx | q1_xxx_quiz | q1_question0 | answer2 | correct_answer | xx.xx.xx.xxxx |
| 3 | 3 | 03.09.2019 11:39:07 | xxxxx | q1_xxx_quiz | q1_question0 | correct_answer | correct_answer | xx.xx.xx.xxxx |
| 4 | 4 | 03.09.2019 11:39:07 | xxxxx | q1_xxx_quiz | q1_question0 | answer1 | correct_answer | xx.xx.xx.xxxx |
| 5 | 5 | 03.09.2019 11:39:07 | xxxxx | q1_xxx_quiz | q1_question0 | answer3 | correct_answer | xx.xx.xx.xxxx |
| 6 | 6 | 03.09.2019 11:39:07 | xxxxx | q1_xxx_quiz | q1_question0 | answer4 | correct_answer | xx.xx.xx.xxxx |
| 7 | 7 | 03.09.2019 11:39:07 | xxxxx | q1_xxx_quiz | q1_question0 | answer3 | correct_answer | xx.xx.xx.xxxx |
| 8 | 8 | 03.09.2019 11:39:07 | xxxxx | q1_xxx_quiz | q1_question0 | correct_answer | correct_answer | xx.xx.xx.xxxx |
| 9 | 9 | 03.09.2019 11:39:07 | xxxxx | q1_xxx_quiz | q1_question0 | answer0 | correct_answer | xx.xx.xx.xxxx |
| 10 | 10 | 03.09.2019 11:39:07 | xxxxx | q1_xxx_quiz | q1_question1 | answer1 | correct_answer | xx.xx.xx.xxxx |
| 11 | 11 | 03.09.2019 11:39:07 | xxxxx | q1_xxx_quiz | q1_question1 | answer1 | correct_answer | xx.xx.xx.xxxx |
| 12 | 12 | 03.09.2019 11:39:07 | xxxxx | q1_xxx_quiz | q1_question1 | answer3 | correct_answer | xx.xx.xx.xxxx |
| 13 | 13 | 03.09.2019 11:39:07 | xxxxx | q1_xxx_quiz | q1_question1 | answer4 | correct_answer | xx.xx.xx.xxxx |
| 14 | 14 | 03.09.2019 11:39:07 | xxxxx | q1_xxx_quiz | q1_question1 | answer2 | correct_answer | xx.xx.xx.xxxx |
| 15 | 15 | 03.09.2019 11:39:07 | xxxxx | q1_xxx_quiz | q1_question1 | answer2 | correct_answer | xx.xx.xx.xxxx |
| 16 | 16 | 03.09.2019 11:39:07 | xxxxx | q1_xxx_quiz | q1_question1 | correct_answer | correct_answer | xx.xx.xx.xxxx |
| 17 | 17 | 03.09.2019 11:39:07 | xxxxx | q1_xxx_quiz | q1_question0 | correct_answer | correct_answer | xx.xx.xx.xxxx |
我正在使用 PHP。我提供了可能的问题答案供用户选择(在数组或分隔字符串中,可能用于查询的IN() 部分?)
所以提问:q1_question0
有很多“提交”
可能的答案:answer1、answer2、answer3、answer4 & correct answer
它被设置为在每次“尝试”回答问题时始终保存正确答案(认为以后通过这种方式获取统计数据可能更容易?)..
我正在寻找一种方法来获得计数/最大值或更好的每个答案与正确答案的百分比。
ie:类似于-
-
answer1- 25% -
answer2- 50% -
answer3- 10% -
answer4- 5% -
correct answer- 10%
甚至:
-
answer1- 4/10 -
answer2- 2/10 -
answer3- 1/10 -
answer4- 1/10 -
correct answer- 2/10
我更喜欢我认为的 %.. 所以我可以使用某种 CSS/标记来直观地创建进度条或其他东西..
此示例仅适用于 1 个问题...有 'x' 个可能的答案...但每个问题的可能答案数量不同。 (因此为什么我认为在数组/分隔字符串中可能有答案.. 用于动态查询创建)..
我不确定这是否也涉及多个子集查询? (获取每个可能答案的“统计数据”?)或者从哪里开始?
我是否尝试收集具有相同问题名称的所有条目。然后以某种方式尝试通过 IN() 子句中的特定答案将其分解,并从问题名称的记录总数中获取百分比?
编辑:
如何获得提交答案与正确答案的百分比?甚至还提供了一个工作表示例 WITH DATA。
根据提交的答案与正确答案(每个可能的可用答案)获取百分比统计信息
【问题讨论】:
标签: php mysql statistics percentage