首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL JOIN+COUNT查询

SQL JOIN+COUNT查询
EN

Stack Overflow用户
提问于 2009-10-02 11:16:23
回答 3查看 4.7K关注 0票数 0

我正在尝试显示一个显示课程列表的表格。我想加入一个栏目,显示已完成课程的人数,如果可能,也显示尚未完成课程的人数。

我的表结构是这样的:

代码语言:javascript
复制
Courses
courseid | title | etc

Studying
courseid | studentid | some other fields | has_completed

理想情况下,输出应该是这样的,例如:

代码语言:javascript
复制
Course Title | some other fields | Students completed | Students not completed
Something      etc                 5                    3

我很难计算出这两个单独的字段。有没有人能推荐一个不错的方法呢?

任何建议,谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-10-02 11:22:15

类似这样的代码应该可以:

代码语言:javascript
复制
SELECT c.CourseID, c.Title, SUM(s.Has_Completed) Completed, SUM(1-s.Has_Completed) NotCompleted
FROM Courses c
LEFT JOIN Studying s ON c.CourseID = s.CourseID
GROUP BY c.CourseID, c.Title
票数 4
EN

Stack Overflow用户

发布于 2009-10-02 11:22:38

如果has_completed的值为1代表true,0代表false,你可以很简单地解决这个问题:

代码语言:javascript
复制
SELECT c.title, SUM(s.has_completed) as completed, COUNT(studentid) - SUM(s.has_completed) as notCompleted
FROM Courses c, Studying s
where c.courseid = s.courseid
GROUP BY c.courseid, c.title 
票数 1
EN

Stack Overflow用户

发布于 2009-10-02 11:21:38

尝试使用SQL count command

代码语言:javascript
复制
SELECT COUNT(has_completed) FROM Studying WHERE has_completed='1'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1508943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档