奕多多 2021-06-03 16:28 采纳率: 55.6%
浏览 68
已采纳

在线求大神查询出这句SQL语句

  • 写回答

2条回答 默认 最新

  • CSDN专家-文盲老顾 2021-06-03 18:14
    关注
    
    with t as (
    	select 1 as 产品ID,'A' as 产品名称,100 as 销售额
    	union all select 2,'B',300
    	union all select 3,'C',200
    	union all select 4,'D',400
    	union all select 5,'E',50
    	union all select 6,'F',500
    	union all select 7,'G',600
    ),t1 as (
        -- 获取当天总销售额
    	select SUM(销售额) as 总销售额 from t
    ),t2 as (
        -- 获得当天每个产品销售额占比,并倒序排序
    	select *,convert(decimal(8,2),销售额)/总销售额*100 as 销售占比
    		,ROW_NUMBER() over(order by convert(decimal(8,2),销售额)/总销售额*100 desc) as rid
    	from t,t1
    )
    select 产品ID,产品名称,销售额 
    from (
        -- 用销售额最高的项,累加销售占比,小于80的一组,大于等于80的一组
    	select *,row_number() over(partition by (case when 累计占比<80 then 0 else 1 end) order by 累计占比) as nid
    	from t2 a
    	cross apply(
    		select (
    			select SUM(销售占比)
    			from t2
    			where rid<=a.rid
    		) as 累计占比
    	) b
    ) a
    -- 筛选出累计占比小于80的,和大于等于80的第一项
    where 累计占比<80 or nid=1
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系