我有以下代码:HAVING MAX(COUNT(*))不工作
SELECT e.Student_ID, s.Name, s.Surname, Result_IS, COUNT(*)
FROM Students s
LEFT JOIN Exams e
ON e.Student_ID=s.Student_ID
WHERE Result_IS='Negative'
GROUP BY e.Student_ID, s.Name, s.Surname, Result_IS
HAVING COUNT(*)=
(
SELECT MAX(COUNT(*)) FROM Exams
WHERE Student_ID=e.Student_ID
AND Result_IS='Negative'
GROUP BY e.Student_ID, s.Name, s.Surname, Result_IS
)
我在与HAVING COUNT(*)
应选择其中COUNT(*)
给了最大的结果行的问题,而是它只是给我的第一选择的输出,这是以下几点:
我一直在尝试所有种类的东西,但没有什么工作,选择该行,其中数是最大的。
只要给我一个提示,请问我应该从哪里开始走,以及代码有什么问题。
谢谢,但我已经知道这个方法,我不希望做这种方式。顺便说一下,在此期间,我想出了如何去做。但是,无论如何感谢:) –
你应该在这里发布你的答案为社区。 – Wjdavis5
PL/SQL是Oracle的过程语言。你可能打算说“Oracle SQL”。而对于Oracle来说,在同一个查询中,你必须注意将'rownum'和'order by'混合在一起,因为'rownum'过滤器在'order by'之前被应用*,所以结果将不正确。相反,你会想要像这样的:'select * from(subquery-with-order-by)where rownum = 1'。 – sstan