0
点赞
收藏
分享

微信扫一扫

SQL每日一题(20201204)分组求和

大雁f 2022-04-16 阅读 50
sql

在这里插入图片描述
group by rollup() 括号里面的内容跟顺序有关
在这里插入图片描述

select
       分组,
       姓名,grouping(分组) a,grouping(姓名) b ,
       case when grouping(分组) = 1 then '合计'
       when grouping(姓名) = 1 then 分组  || '组' else 姓名 end 姓名,
       sum(今日金额)                                                                                              今日金额,
       sum(本周金额)                                                                                              本周金额,
       sum(本月金额)                                                                                              本月金额
from t1204
group by rollup (分组, 姓名)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SELECT CASE
           WHEN 姓名 IS NULL AND 分组 = 1 THEN '1组'
           WHEN 姓名 IS NULL AND 分组 = 2 THEN '2组'
           WHEN 姓名 IS NULL AND 分组 IS NULL THEN '总计'
           ELSE 姓名 END 姓名,
       今日金额,
       本周金额,
       本月金额
FROM (SELECT t.姓名, SUM(t.今日金额) 今日金额, SUM(t.本周金额) 本周金额, SUM(t.本月金额) 本月金额, 分组 FROM T1204 t GROUP BY CUBE(t.姓名,t.分组)
      HAVING (姓名 IS NULL) OR (姓名 IS NOT NULL AND 分组 IS NOT null)
      ORDER BY t.分组)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

select 姓名,今日金额,本周金额,本月金额 from
 (
select 姓名,今日金额,本周金额,本月金额,分组 as 排序标志 from T1204
union all
select concat(分组,'组') as 姓名,sum(今日金额) as 今日金额,sum(本周金额) as 本周金额,sum(本月金额) as 本月金额,avg(分组)+0.5 as 排序标志
from T1204 
group by 分组
union all
select '总计' as 姓名,sum(今日金额) as 今日金额,sum(本周金额) as 本周金额,sum(本月金额) as 本月金额 ,sum(分组) as 排序标志
from T1204
)a
order by 排序标志
举报

相关推荐

SQL每日一题(20220216)

SQL每日一题(20210617)

SQL每日一题(20201014)

SQL每日一题(20220217)

SQL每日一题(20210524)

SQL每日一题(20220407)

0 条评论