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

完成指定数量课程对应认证资格的报表实现咨询

认证报表实现方案

前提说明

基于你给出的业务规则(用户完成6门不同课程即可获得认证)及表结构设定,先明确两个表的关联逻辑:

  • user表存储用户基础信息,course表存储所有用户的课程完成记录,两表通过用户姓名字段关联
  • 统计时需要对同一用户的同一课程完成记录去重,避免重复计数

核心统计逻辑(SQL实现)

你可以直接使用以下查询语句批量获取所有用户的认证状态:

SELECT 
  u.*,
  COUNT(DISTINCT c.course_name) AS completed_course_num,
  CASE 
    WHEN COUNT(DISTINCT c.course_name) >= 6 THEN '已认证'
    ELSE '未认证'
  END AS certification_status
FROM user u
LEFT JOIN course c 
  ON u.user_name = c.user_name
GROUP BY u.user_name

补充说明:如果你的course表中存在唯一课程ID字段,建议将COUNT(DISTINCT c.course_name)替换为COUNT(DISTINCT c.course_id),统计准确性更高;如果确认不存在同一用户重复完成同一门课的记录,可去掉DISTINCT提升查询效率。

以你给出的Sally Smith示例验证:该用户在course表中有6条不同课程的完成记录,查询结果中completed_course_num为6,certification_status返回「已认证」,完全匹配业务规则要求。


前端展示建议

拿到查询结果后,可按以下规则在报表页展示:

  • 已认证用户:高亮展示已认证标识,可同步展示用户已完成的全部课程明细
  • 未认证用户:展示未认证标识,同时补充进度提示,如「已完成X门课程,还差Y门即可获得认证」

优化建议

如果后续业务迭代,推荐将两表的关联字段从「用户姓名」替换为用户唯一ID(如user_id),可以避免重名用户导致的统计错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:57:04