【发布时间】:2014-03-20 17:48:04
【问题描述】:
course_modules
id course
1 3
2 3
3 6
4 8
5 8
23 9
46 9
user_completed_modules
id coursemoduleid userid
1 1 6
2 2 6
3 3 6
4 4 12
5 5 12
6 23 12
7 46 12
I need the output like
userid course count(coursemoduleid) count(coursemodules)
6 3 12 10
6 8 8 10
6 9 6 15
这里我需要users completed modules 和count of modules in a course
我对我的英语感到非常抱歉。
谁能帮我查询一下?
SELECT count(cm.id) AS "coursemodules",
(SELECT count(cmc.coursemoduleid) FROM user_completed_modules cmc
JOIN course_modules cm ON cmc.coursemoduleid = cm.id
WHERE cmc.userid = 6 AND cm.course = 8 ) AS "completedmodules"
ROM course_modules cm WHERE cm.course= 8
【问题讨论】:
-
这取决于实现。如果没有有用的 PARTITION BY 函数,请考虑
SELECT .. FROM baseRelation LEFT JOIN derivedCount1 LEFT JOIN derviedCount2(我还建议避免使用 [implicit] CROSS JOIN 语法。) -
您使用的是什么数据库?根据什么逻辑你的计数是有意义的?
-
我需要向用户显示课程中已完成的模块以及课程中的模块总数