如果group 之后的这个字段的这组数据中有0,则显示0 ,如果没有,则显示平均值
SELECT
CASE WHEN
AVG(CASE WHEN 某个字段 = 0 THEN 1 ELSE NULL END) > 0 THEN '0'
ELSE AVG(某个字段) END AS 某个字段_value
FROM
tabname
GROUP BY
group_分组字段
case when 字段=0 then 0 else sum(字段)/count(1) end num
不如再查一个集合,按你的分组取有0的记录,然后关联你的分组汇总的结果 ,如果前面这个集合有值,汇总结果就给个0,如果 前面这个集合没有值,就正常求组内平均值
select t.名称,t.金额,case when t.金额=0 then 平均值 else t.金额 end as 判断后的值 from (
select 名称,sum(金额) as 金额 from 表
group by 名称
) t