Oracle SQL缺少表达式/语法错误

时间:2018-05-19 11:05:42

标签: sql oracle count having

所以基本上我的问题是我有以下查询,我收到一个错误,说有一个语法错误,但我可以找出什么。我想知道我是否不能在子查询中使用 HAVING COUNT()

SELECT FIELDNUM
FROM INTEREST 
GROUP BY FIELDNUM
HAVING COUNT(ACNUM) >= ALL(SELECT FIELDNUM
                       FROM INTEREST
                       HAVING COUNT(ACNUM));

语法错误显示在最后2个右括号中,即 有COUNT(ACNUM ));

我想要得到的结果是对大多数学者(ACNUMS)感兴趣的领域(FIELDNUM),但我不允许使用MAX或ROWNUM。

兴趣表的属性为FIELDNUM,ACNUM和DESCRIPTION。

1 个答案:

答案 0 :(得分:2)

如果查询结构为:

,那么查询至少是有意义的
SELECT FIELDNUM
FROM INTEREST 
GROUP BY FIELDNUM
HAVING COUNT(ACNUM) >= ALL (SELECT COUNT(ACNUM)
                            FROM INTEREST
                            GROUP BY FIELDNUM
                           );

我不建议编写逻辑来获取表中出现次数最多的fieldnum,但这是一种有效的方法。