求助sql求平均值的问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 21:52:53
我有个sql语句如下:
select case when A=1580 and C*D>50 then 50
when A=1580 and C*D<50 then C*D
when A=200 and C*D>20 then 20
when A=200 and C*D<20 then C*D
else C*D end C*D

我现在想不仅知道C*D的值 我还想求出C*D的平均值 请问大家该如何写?
from tablename
不好意思 我问题没说完~~~
是这样的 我需要的是(C*D)的总数/E的和 这个整体的平均值
我本来是想sum( case when A=1580 and C*D>50 then 50
when A=1580 and C*D<50 then C*D
when A=200 and C*D>20 then 20
when A=200 and C*D<20 then C*D
else C*D end C*D )/sum(E), 想这样,但系统老是报错,请问大家 该如何做呢?

报错是显示 "/"或者SUM附近有错误 但我不知道是啥错误

呵呵是 tj_angela 写的 不过我还需要更完善点的 谢谢你哈

select

case when A=1580 and C*D>50 then 50
when A=1580 and C*D<50 then C*D
when A=200 and C*D>20 then 20
when A=200 and C*D<20 then C*D
else C*D end C*D ,

AVERAGE(case when A=1580 and C*D>50 then 50
when A=1580 and C*D<50 then C*D
when A=200 and C*D>20 then 20
when A=200 and C*D<20 then C*D
else C*D end) AVG

补充:
你下面的语句有错:
sum( case when A=1580 and C*D>50 then 50
when A=1580 and C*D<50 then C*D
when A=200 and C*D>20 then 20
when A=200 and C*D<20 then C*D
else C*D end C*D )/sum(E),
别名不能在SUM里面,应该修改为:
sum( case when A=1580 and C*D>50 then 50
when A=1580 and C*D<50 then C*D
when A=200 and C*D>20 then 20
when A=200 and C*D<20 then C*D
else C*D end )/sum(E) AVG,

你的思路应该是可以的,报什么错啊

这貌似好像是我写的吧