当前位置:Gxlcms > 数据库问题 > 分组统计并计算每组数量sql

分组统计并计算每组数量sql

时间:2021-07-01 10:21:17 帮助过:3人阅读

select fo,count(dispname)from(
select substr(subjcode,1,4) fo,bd_accsubj.dispname,
bd_accsubj.pk_accsubj, bd_accsubj.pk_glorgbook 
from bd_accsubj
where pk_glorgbook in(select pk_glorgbook from bd_glorgbook where glorgbookcode= ‘010502-0001‘ ) 
order by dispname)
group by fo  order by fo
 
技术分享

技术分享

 

方法二 partition 这个时候后面不需要group by 但是需要distinct fo 否则见下图

select id,count(*) over(partition by pro_id) from sal;
以pro_id分组,统计分组后每个pro_id的记录总数及对应的id;
类似还有count(*) over(order by ……)、sum(amount) over(partition by ……)等,略有区别,挺有意思,有兴趣可以小研究下

技术分享
select distinct fo,count(dispname) over( partition by fo) num1 from
(
select substr(subjcode,1,4) fo,bd_accsubj.dispname,
bd_accsubj.pk_accsubj, bd_accsubj.pk_glorgbook 
from bd_accsubj
where pk_glorgbook in(select pk_glorgbook from bd_glorgbook where glorgbookcode= ‘010502-0001‘ ) 
order by dispname)
order by fo
技术分享

如果group by fo ,这里不能group by,总结:partition是group by的一种形式,group 不需要重复

技术分享

不加distinct fo

技术分享

更新2012-11-9 19:12:增加一列显示一级科目名称 需要外面嵌套两个select

技术分享
select fo,
       (select subjname
          from bd_accsubj
         where subjcode = fo
           and pk_glorgbook = ‘0001E1100000000000MX‘) aa,num1
  from (select fo, count(dispname)num1
          from (select substr(subjcode, 1, 4) fo,
                       bd_accsubj.dispname,
                       bd_accsubj.pk_accsubj,
                       bd_accsubj.pk_glorgbook
                  from bd_accsubj
                 where pk_glorgbook in
                       (select pk_glorgbook
                          from bd_glorgbook
                         where glorgbookcode = ‘010101-0001‘)
                 order by dispname)
         group by fo)
 order by fo
技术分享

技术分享

 统计结算中心制单由哪些部分组成

 

select  pk_system,count(PK_SYSTEM)   from gl_voucher where pk_corp=‘1162‘ and dr=‘0‘ GROUP BY pk_system

 

 

技术分享

 2012-12-21 10:39:58 折腾到现在终于发现这个29462就是我结算凭证的数量

上面的gl是期初产生的,GL是手工录入,EC是单据管理付款来的(当地行支付,应收应付报账中心)

CV是协同凭证,FTS是结算中心的资金结算

结算中心从开始到现在制单有29474=29462(FTS)+6(EC)+(8-2)(GL,其中有下面两个不知道为什么废了)

技术分享

技术分享

分组统计并计算每组数量sql

标签:

人气教程排行