您可能需要複製此DDL,將其調整爲與您的架構相匹配,然後將其粘貼到您的問題中。
create table Student(
student_id integer primary key,
student_name varchar(35) not null,
age int not null default 20
);
create table Course(
course_id integer primary key,
course_name varchar(35) not null,
credit integer not null default 3
);
create table Enrollment(
student_id integer not null references Student (student_id),
course_id integer not null references Course (course_id),
primary key (student_id, course_id),
grade char(1) not null
);
insert into student values
(1, 'a', 20),
(2, 'b', 20),
(3, 'c', 20);
insert into course values
(1, 'course 1', 3),
(2, 'course 2', 3),
(3, 'course 3', 3);
insert into enrollment values
(1, 1, 'b'),
(2, 1, 'b'),
(3, 1, 'b'),
(1, 2, 'b'),
(2, 2, 'b'),
(3, 3, 'b');
現在,通過查詢「註冊」表,您可以獲得每門課程註冊的學生人數。
select course_id, count(student_id) num_students
from enrollment
group by course_id
order by course_id;
course_id num_students
--
1 3
2 2
3 1
剩下的就是得到相應的課程名稱。要做到這一點,您只需將表格「課程」加入我們剛纔編寫的查詢中即可。
您應該發佈每個表的一些示例數據和所需的結果。 – Taryn 2013-04-11 19:47:24