字段计算问题

sqlserver数据库,字段1是名字,字段2是数量,有三行记录,比如

name  shuliang

abc         27

bcd          32

cde           18


如何计算每个的数量和数量这列的合计的比值(27/(27+32+18)),这个意思,SQL怎么写?

xiaomili 发布于 2020-4-22 09:18
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
1
axingLv6专家互助
发布于2020-4-22 09:25
with temp as (
select 'abc' a,27 as b
union all 
select 'bcd' a,32 as b
union all 
select 'cde' a,18 as b
)
select a,b,b*1.0/sum(b)over() from temp

image.png

最佳回答
0
lisk_njLv4初级互助
发布于2020-4-22 09:38

在shuliang下面一行插入公式sum(d2)比如d3去计算总值,在shuliang列加一列,插入公式d3/d2,就可以了,如果不需要总值,可以将d3隐藏

最佳回答
0
啊哈~鹅卵石Lv5见习互助
发布于2020-4-22 09:39

建议使用普通报表实现这个运算,具体如下图

无标题.png

必须要用SQL,可以使用别列的方法:

select name, shuliang/hj  from (select  name,shuliang , ( SELECT sum(zonge) FROM Tname) as  hj   from Tname) A

注意上面除式你在实际使用过程中,最好进行分母非零判断

  • 4关注人数
  • 418浏览人数
  • 最后回答于:2020-4-22 09:39
    请选择关闭问题的原因
    确定 取消
    返回顶部