列出 2012 年第 3 期只注册一门学科的学生的学号、学科代码、年份和学期。
SELECT StudentNum, RSubjectCode, Year, SessionTerm
FROM <TABLE>
WHERE Year ='2012'
AND SESSIONTERM = '3';
这会选择 2012 年和第 3 期的所有人。我如何才能找到只注册了 ONE 科目的学生?
按 StudentNum、Year 和 SessionTerm 分组。这样,您可以计算记录数以仅返回具有一条记录的记录。由于该分组,您需要获取主题代码的最大值(或最小值)。1 条记录的最大值将是唯一的记录,因此结果将是正确的并且查询将很快,即使它可能看起来很奇怪。
SELECT
StudentNum,
max(RSubjectCode) as RSubjectCode,
Year,
SessionTerm
FROM
<TABLE>
WHERE
Year ='2012'
AND SESSIONTERM = '3'
GROUP BY
StudentNum,
Year,
SessionTerm
HAVING
count(*) = 1