You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

我的MAX函数使用出错:GROUP BY子句中不能使用聚合函数问题咨询

问题分析与修正方案

嘿,这个错误很典型!咱们直接说问题出在哪:

你在GROUP BY子句里放了聚合函数MAX(skm_vrecommendations.decno),这是不符合SQL语法规则的。

为什么不行?

GROUP BY的作用是定义分组的维度(也就是普通列),让数据库按照这些列的值把数据分成不同的组;而MAX()这类聚合函数是用来对每个分组计算统计结果的——两者的角色完全不同,聚合函数根本不应该出现在GROUP BY里。

你的需求是「每个cno对应的最大decno」,只需要按cno分组就够了,MAX(decno)会自动帮你计算每个分组里的最大值。

修正后的SQL语句

SELECT skm_vrecommendations.cno, Max(skm_vrecommendations.decno)
FROM skm_vrecommendations
INNER JOIN skm_voutcome 
    ON (skm_vrecommendations.cno = skm_voutcome.cno) 
    AND (skm_vrecommendations.refdt = skm_voutcome.refdt) 
    AND (skm_vrecommendations.decno = skm_voutcome.decno)
WHERE 
    (skm_vrecommendations.reccode = 39) 
    AND (skm_voutcome.visitdt BETWEEN #1/1/2018# AND #1/31/2018#)
GROUP BY skm_vrecommendations.cno;

额外小提示

如果你担心结果列名不清晰,也可以给聚合列加个别名,比如Max(skm_vrecommendations.decno) AS max_decno,这样查询结果的可读性会更好。

内容的提问来源于stack exchange,提问作者uk visa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:35:27