【发布时间】:2011-01-18 12:46:29
【问题描述】:
现在,我有一个查询得到 3 列。
SELECT a.studentID, a.classdetailID, c.course_title
FROM studentcoursedetails a, classdetails b, course c
WHERE strong> b.classdetailID = a.classdetailID
AND b.courseID = c.courseID
ORDER BY c.course_title, b.classdetailID
我得到的是一列,其中显示了参加课程的学生的 ID、他们所在班级的 ID 以及课程本身的标题。大致如下:
5---8----Airline Security Operations
4---8----Airline Security Operations
6---8----Airline Security Operations
4---9----Airline Security Operations
8---10---Airline Security Operations
5---10---Airline Security Operations
1---1----Airport Design and Construction
4---1----Airport Design and Construction
2---1----Airport Design and Construction
1---2----Airport Design and Construction
我需要一张能显示如下内容的表格:
course_title Number of Classes Number of students
Airline Security Operations 3 4
我曾想过使用CASE,但一想到它,我就迷路了。非常感谢您的帮助。
答案,感谢gbn:
SELECT c.course_title, COUNT(DISTINCT a.studentID) AS “课程中的学生”, COUNT(DISTINCT a.classdetailID) AS “总课程”
FROM studentcoursedetails a
加入 classdetails b ON b.classdetailID = a.classdetailID
加入 course c ON b.courseID = c.courseID
GROUP BY c.course_title
【问题讨论】: