列出学生编号,科目代码,年份和学生的学期 谁在2012年第3届会议中只注册了一个主题。
SELECT StudentNum, RSubjectCode, Year, SessionTerm
FROM <TABLE>
WHERE Year ='2012'
AND SESSIONTERM = '3';
这将选择2012年和第3期的所有人。我如何才能找到仅注册一个主题的学生?
答案 0 :(得分:3)
按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