SQL语句筛选前n个销售额高的产品,其合计销售额占总销售额的百分之85写完后发现少了一行,请问有什

xudaxian 发布于 2021-7-10 23:07
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
zsh331Lv8专家互助
发布于2022-1-4 18:14

-- MySQL语法 8.0.16

SELECT

品牌描述

   ,销售额

   ,sum(销售额) over(order by 销售额 desc) as 逐层累计值

   ,sum(销售额) over() as 总累计值

   ,sum(销售额) over(order by 销售额 desc)/sum(销售额) over() as 累计占比

FROM

(

 select 

    b.品牌描述

   ,sum(a.销售额) as 销售额 

from 

SalesDetails a

INNER JOIN BrandDimension b ON a.品牌编号 = b.品牌编号

GROUP BY

b.品牌描述 

) m 

——————————————————————

最佳回答
0
snrtuemcLv8专家互助
发布于2021-7-11 06:12
不是对嘛,你标出这一行,占比是0.86,大于0.85啊
  • xudaxian xudaxian(提问者) 题目要求按销售额降序排序,求第一个大于0.85之前的所有行,包括第一个大于0.85的那行
    2021-07-11 08:10 
  • snrtuemc snrtuemc 回复 xudaxian(提问者) 你就是要取到产品名称B的那一行,那就第一个,你已经取到小于0.85的所有产品,你把这个几个产品排除了,然后再再剩下的数据里面。排序,然后取排序后第一行数据,这样不就可以了,一个思路,自己去处理下
    2021-07-12 07:53 
  • 2关注人数
  • 421浏览人数
  • 最后回答于:2022-1-4 18:14
    请选择关闭问题的原因
    确定 取消
    返回顶部