有没有一种方法可以使用将多列用作新主键的GROUP BY语句? (一个接一个)

时间:2020-09-06 19:13:46

标签: group-by aggregate

例如,我的表设置如下;

course_sections
    section_id
    course_number
    section
    term_id
    year
    professor
    capacity

term
    term_id
    term (Fall, Winter, Spring)
    year

我正在尝试的当前查询如下:

SELECT cs.professor as 'Professor Name',t.year as 'Year',t.term as 'Term',sum(cs.capacity) as 'Teaching Capacity'
FROM course_sections cs
    JOIN term t ON cs.term_id = t.term_id
GROUP BY cs.professor
ORDER BY cs.professor;

我被困的原因是因为这一次返回了每个老师的姓名,而一个学期的学生能力如下所示。

NAME      TERM    YEAR    STUDENT CAPACITY
Josh      Fall    2016    150 
Courtney  Fall    2016    150
Steve     Fall    2016    150 

我需要能够这样显示

NAME       TERM    YEAR    STUDENT CAPACITY
Josh       Fall    2016    75 
Josh       Winter  2017    75 
Courtney   Fall    2016    60 
Courtney   Winter  2017    80 
Steve      Fall    2016    100 
Steve      Winter  2017    50 

1 个答案:

答案 0 :(得分:0)

您的问题不太清楚,但是根据您的预期输出,您需要

由cs.professor,cs.term_id

获取每学期每位教授的学生人数。