You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计Moodle中scorm_scoes_track表内SlideX_QuestionY类问题的value结果数?

问题描述

1名用户完成了2次测试尝试。测试题目为随机抽取,因此不同题目存储在element和value列中。(附scorm_scoes_track表截图)

如何统计scorm_scoes_track表中,所有格式为SlideX_QuestionY的问题对应的value列结果数量?期望结果参考对应截图。

现有查询SQL:

SELECT
    st.* 
    FROM prefix_scorm_scoes_track    AS st
       JOIN prefix_user              AS u   ON st.userid  = u.id
       JOIN prefix_scorm             AS sc  ON sc.id      = st.scormid
       JOIN prefix_course            AS c   ON c.id       = sc.course
    WHERE   sc.course = 684 and st.scormid = 1195  and st.userid = 9780
解决方案

按问题+结果统计数量

如果需要统计每个问题下不同value结果的出现次数(以MySQL为例):

SELECT
    st.element AS question,
    st.value AS answer_result,
    COUNT(*) AS result_count
FROM prefix_scorm_scoes_track AS st
JOIN prefix_user AS u ON st.userid = u.id
JOIN prefix_scorm AS sc ON sc.id = st.scormid
JOIN prefix_course AS c ON c.id = sc.course
WHERE 
    sc.course = 684 
    AND st.scormid = 1195  
    AND st.userid = 9780
    AND st.element REGEXP '^Slide[0-9]+_Question[0-9]+$'
GROUP BY st.element, st.value
ORDER BY st.element, st.value;

按问题统计总尝试数

如果只需要统计每个SlideX_QuestionY格式问题的总提交次数:

SELECT
    st.element AS question,
    COUNT(*) AS total_attempts
FROM prefix_scorm_scoes_track AS st
JOIN prefix_user AS u ON st.userid = u.id
JOIN prefix_scorm AS sc ON sc.id = st.scormid
JOIN prefix_course AS c ON c.id = sc.course
WHERE 
    sc.course = 684 
    AND st.scormid = 1195  
    AND st.userid = 9780
    AND st.element REGEXP '^Slide[0-9]+_Question[0-9]+$'
GROUP BY st.element
ORDER BY st.element;

关键说明

  • 用REGEXP '^Slide[0-9]+_Question[0-9]+$'精准匹配目标格式的问题,过滤无关记录
  • 通过GROUP BY分组搭配COUNT(*)实现数量统计
  • 保留原查询的关联与过滤条件,确保统计范围限定在指定课程、SCORM包和用户

内容的提问来源于stack exchange,提问作者Jay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 14:07:45