HY!
我必须确定哪个月是最多的考试。 我的表格显示:考试(Exam_id,Student_id,Teacher_id,Subject_id,Course_id,Exam_date,Result_is)。
首先,我必须计算每个月的考试数量。我用以下代码完成了这个:
SELECT SUBSTR(Exam_date, 4, 7) as When, COUNT(SUBSTR(Exam_date, 4,7)) as Count
FROM Exams
GROUP BY SUBSTR(Exam_date, 4, 7)
在此之后,我尝试使用以下代码提取最大值:
SELECT s.When, MAX(s.Count)
FROM(
SELECT SUBSTR(Exam_date, 4, 7) as When, COUNT(SUBSTR(Exam_date, 4,7)) as Count
FROM Exams
GROUP BY SUBSTR(Exam_date, 4, 7)
)s
GROUP BY s.When
但结果是一样的,所以第二部分不起作用。 错误在哪里?
非常感谢!
答案 0 :(得分:0)
首先,假设exam_date属于DATE类型,您可以使用TO_CHAR(exam_date, 'MM')
获取月份,而不是使用SUBSTR。
关于你的第二部分,你应该将结果与自身进行比较:
WITH table1 AS
(SELECT TO_CHAR(exam_date, 'MM') as when, COUNT(TO_CHAR(exam_date, 'MM')) as count
FROM Exams
GROUP BY TO_CHAR(exam_date, 'MM'))
SELECT table1.when FROM table1 WHERE table1.count = (SELECT MAX(count) FROM table1);