首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >group by rollup复制结果

group by rollup复制结果
EN

Stack Overflow用户
提问于 2021-09-24 19:57:20
回答 1查看 36关注 0票数 0

您好,我正在尝试使用group by rollup来获取列的总计,但当我这样做时,它正在复制行。我做错了什么?谢谢。

代码:

代码语言:javascript
复制
WITH TOTS AS
(
select 
swkl.prn_cln_n,
swkl.swkl_bgn_dt,
swkl.swkl_end_dt,
swkl.sec_id,
actbl.*
from actbl
join actblc on actblc.actbl_seq_id = actbl.actbl_seq_id
join swkl on swkl.swkl_id = actblc.swkl_id 
where swkl.prn_cln_n = '242931'
and swkl.stlm_rcd_sta_cd = 'A'
and trunc(swkl.stlm_rcd_mntd_ts) = to_date('03/10/2021','mm/dd/yyyy')   --'14-JUN-2021'
and actblc.actblc_wkfl_pcs_cd = 'COM'
and actblc.stlm_rcd_sta_cd = 'A'
)
,F2 AS
(
SELECT PRN_CLN_N AS CLIENT_NUMBER   
,LINE_TYPE_HM   
,PR_TYP_C   
,SUM(BIIL_A) AS BILL_AMOUNT
FROM TOTS
GROUP BY PRN_CLN_N  
,LINE_TYPE_HM   
,PR_TYP_C
)
SELECT coalesce(CLIENT_NUMBER,'TOTAL') AS CLIENT_NUMBER
,LINE_TYPE_HM
,PR_TYP_C
,SUM(BILL_AMOUNT)  BILL_AMOUNT
FROM F2
group by rollup (CLIENT_NUMBER
,LINE_TYPE_HM
,PR_TYP_C)
EN

回答 1

Stack Overflow用户

发布于 2021-09-25 04:37:25

据我所知,没有什么问题。

在使用rollup时,您可以在it - client_number, line_type_hm, pr_typ_c中指定列,即3列。rollup将生成分类汇总的3 + 1 = 4级别。这些小计通过在汇总列中包含NULL值来直观地标识。在你的截图中,

  • 一级是所有“完全填充”的行(所有列都具有某些值的行,即第1行、第3行、第5行、...)
  • 第2级是pr_typ_cNULL (第2行、第4行、第6行、...)的行
  • 第3级是倒数第二行( line_type_hm和D14均为空)
  • 第4级是“总计”,最后一行是client_number

我没有您的表和数据,所以您可能知道下一步要做什么,因为您可以通过执行来减少小计的数量。多么?例如,

代码语言:javascript
复制
group by client_number, rollup(line_type_hm, pr_typ_c)

或汇总列的任何其他组合。

试一试,看看会发生什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69320527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档