总销售额能得到一计算占比就显示为0

一、建表语句

CREATE TABLE student_2008 (

name VARCHAR ( 32 ), 

sale INT 

);

insert into student_2008(name,sale) values

('产品A',90),

('产品B',84),

('产品C',73),

('产品D',100),

('产品E',103),

('产品F',89);

二、需求:计算合计销售额占全体销售额85%

2.1 取全体销售额

select

name,

sale,

sum(sale) over() as alsale from student_2008  --求总销售额 

image.png

2.2 计算占比

select

name,

sale,

sale/sum(sale) over() as zhbi from student_2008 

image.png

换个方式计算占比 使用子查询也是这样 就

FineReport 南巷尕杰 发布于 2022-1-6 14:34
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
CD20160914Lv8专家互助
发布于2022-1-6 14:43(编辑于 2022-1-6 14:53)

什么数据库?oracle中这样是可以的。。。。mysql?

select

name,

sale,

round(cast((cast( sale as float )/sum(sale) over()) as float),4) as td

 from student_2008 

  • 3关注人数
  • 343浏览人数
  • 最后回答于:2022-1-6 14:53
    请选择关闭问题的原因
    确定 取消
    返回顶部