加权平均的问题,在线给分

gopark 2005-08-24 12:27:17
有个表a
编号 数量 单价
001 1 100
002 1 120
003 5 300
001 2 110
002 1 110

……

想要
001的平均单价=(100*1+110*2)/(1+2)
怎么抓??
...全文
146 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlp321002 2005-08-24
  • 打赏
  • 举报
回复
--测试环境
declare @表a table (编号 varchar(3),数量 int ,单价 money)
insert into @表a select '001',1,100
union all select '002',1,120
union all select '003',5,300
union all select '001',2,110
union all select '002',1,110
--查询语句
select 编号,加权平均单价=sum(单价*数量)/sum(数量)
from @表a
group by 编号
--结果
编号 平均单价
---- ---------------------
001 106.6666
002 115.0000
003 300.0000

(所影响的行数为 3 行)
alipaymate 2005-08-24
  • 打赏
  • 举报
回复
为什么 (sum([数量])+0.0) 要加 0.0?
zjcxc 元老 2005-08-24
  • 打赏
  • 举报
回复
太简单了吧
wgsasd311 2005-08-24
  • 打赏
  • 举报
回复
select [编号],
[加权平均值]=(sum([数量]*[单价]))/(sum([数量])+0.0)
from a
group by [编号]
vivianfdlpw 2005-08-24
  • 打赏
  • 举报
回复
declare @tb table
(
[编号] varchar(10),
[数量] int,
[单价] int
)
insert @tb
select '001',1,100 union
select '002',1,120 union
select '003',5,300 union
select '001',2,110 union
select '002',1,110

--查询
select [编号],
[加权平均值]=(sum([数量]*[单价])+0.0)/sum([数量])
from @tb
group by [编号]
--where [编号]='001'


--结果
/*
编号 加权平均值
---------- -------------------------
001 106.67
002 115.00
003 300.00

(所影响的行数为 3 行)

*/
vivianfdlpw 2005-08-24
  • 打赏
  • 举报
回复
select [编号],
[加权平均值]=(sum([数量]*[单价])+0.0)/sum([数量])
from a
group by [编号]
where [编号]='001'
blackwh 2005-08-24
  • 打赏
  • 举报
回复
select sum(数量*单价) / sum(数量) from a where 编号 = '001';

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧