一个地方的学生和课程数量

时间:2015-06-14 23:37:02

标签: sql oracle aggregate-functions

我正在尝试构建一个语句,它将为我提供三列的输出。位置,部分(该地点的部分数量)和学生(该地点的学生人数)。在我的下面的陈述中,我的子查询分别给出正确的计数;但是,当我添加我的顶级选择语句时,我将所有计数显示在学生列下,并且列出了两次位置。

SELECT DISTINCT location, student
FROM(
    SELECT location, COUNT(student_id) AS Student
    FROM section s INNER JOIN enrollment e
    ON s.section_id = e.section_id
    GROUP BY location
UNION
    SELECT location, COUNT(section_no) AS Sections
    FROM section 
    GROUP BY location
    ORDER BY location);

My Results What I am trying to get

1 个答案:

答案 0 :(得分:1)

如果需要三列,则需要在SQL语句中指定它们。最简单的方法可能是COUNT(DISTINCT)

SELECT s.location, COUNT(DISTINCT s.section_id) as NumSections,
       COUNT(student_id) AS Student
FROM section s INNER JOIN
     enrollment e
     ON s.section_id = e.section_id
GROUP BY s.location;
相关问题