在group by子句之后计算唯一值

时间:2019-03-13 17:57:03

标签: sql

我需要计算一个学年每个专业的学生人数。一年有三个学期。一个学生在每个学期都声明了不同的专业。我需要修读他/她宣布的最后一个专业,并计算该专业中的所有学生。所以一个专业只有一个学生。 当我按专业分组时,我无法避免重复。  我只有一张桌子。它拥有我需要的一切。

我写了这段代码。而且它给了我重复的计数。

SELECT MAJR_CODE, MAJR_DESC, COUNT(DISTINCT ID_KEY)
FROM STUDENT_ENROLLMENT
WHERE TERM in ('201830','201910','201920') 
and REGISTERED='Y'
GROUP BY MAJR_CODE, MAJR_DESC
ORDER BY MAJR_CODE

如何获得想要的结果?

2 个答案:

答案 0 :(得分:0)

您可以使用窗口函数来获取最新术语的数据:

no

答案 1 :(得分:0)

我想得到最近五年的结果。我如何获得结果

主要------ 2018年(期限201730-201820)-------- 2019年(期限201830-201920年)
专业1 ------招生1 -------------------------------招生2