如何进行此SQL查询?

时间:2015-12-08 15:26:54

标签: sql oracle

很简单,我需要制作一个打印出所有年份(按递增顺序)的查询,其中只进行了一次考试。我正在考虑必须查询每个不同的年份,然后使用计数功能来测试那一年是否只有一个考试?但我似乎无法写出来。如果它很重要,程序是用Java编写的,所以我可以操作输出。

EXAM表格的形式是:

ndarray

3 个答案:

答案 0 :(得分:2)

您需要使用HAVING,并使用distinct Module_code以防万一。

SELECT Exam_year
FROM EXAM
GROUP BY Exam_year
HAVING COUNT(distinct Module_code) = 1
ORDER BY Exam_year

答案 1 :(得分:1)

select Exam_year from EXAM group by module_code having count(module_code) = 1 order by Exam_year asc

答案 2 :(得分:1)

一个查询应该完成工作。试试这个:

select Exam_year
from EXAM 
group by Exam_year
having count(*) = 1
order by Exam_year

如果您在输出中需要的信息不仅仅是Exam_year,则可以修改此信息以支持其他信息,但此示例是执行您的要求中所述内容的最简单方法。