0

列出 2012 年第 3 期只注册一门学科的学生的学号、学科代码、年份和学期。

SELECT StudentNum, RSubjectCode, Year, SessionTerm 
 FROM <TABLE> 
WHERE Year ='2012' 
  AND SESSIONTERM = '3';

这会选择 2012 年和第 3 期的所有人。我如何才能找到只注册了 ONE 科目的学生?

4

1 回答 1

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
于 2012-11-05T11:46:04.863 回答