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

SQL avg函数报错:Operand data type varchar is invalid的修正方法

问题修正方案

错误原因

AVG() 函数仅支持数值类型计算,你当前脚本在 CASE 语句中返回的是字符串('yes'/'no'),属于varchar类型,不符合AVG()的运算要求,因此触发报错。

修正思路

要实现“平均薪资高于6000返回'yes',低于返回'no'”的需求,需先计算薪资的平均值,再对这个平均值做条件判断,而非先对单条记录返回字符串再求平均。

修正后的SQL脚本

SELECT 
    CASE 
        WHEN AVG(BASIC_SALARY) > 6000 THEN 'yes'
        ELSE 'no' 
    END AS above_6000
FROM workers_table;

补充说明

如果你的实际需求是统计薪资高于6000的员工占比(而非判断整体平均薪资),可以用以下写法:

SELECT 
    CASE 
        WHEN AVG(CASE WHEN BASIC_SALARY > 6000 THEN 1 ELSE 0 END) > 0.5 THEN 'yes'
        ELSE 'no' 
    END AS above_6000_ratio
FROM workers_table;

这里先将符合条件的记录标记为1、不符合的标记为0,通过求平均值得到占比,再根据占比返回结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 17:40:53