所以基本上我的问题是我有以下查询,我收到一个错误,说有一个语法错误,但我可以找出什么。我想知道我是否不能在子查询中使用 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。
答案 0 :(得分:2)
如果查询结构为:
,那么查询至少是有意义的SELECT FIELDNUM
FROM INTEREST
GROUP BY FIELDNUM
HAVING COUNT(ACNUM) >= ALL (SELECT COUNT(ACNUM)
FROM INTEREST
GROUP BY FIELDNUM
);
我不建议编写逻辑来获取表中出现次数最多的fieldnum
,但这是一种有效的方法。