SQL 分组 统计 按 类分组 统计 子类 显示 类名

 

SQL分组统计每个大类下面有多少个小类并形成统计表结构:

原始数据表ptenudetail如下:
类名(ENUITEMLABEL)分类ID(ENUITEMVALUE)
农、林、牧、渔业  A
农业                          A01
畜牧业                      A03
牲畜的饲养              A031
农业服务业              A051
采 矿 业                  B
煤炭开采和洗选业  B06
褐煤的开采洗选      B062
其他采矿业              B11
制 造 业                  C
农副食品加工业      C13
谷物磨制                 C131
国际组织                  T

按分类ID分组统计如下:
SELECT  LEFT(ENUITEMVALUE, 1),COUNT(ENUITEMVALUE) FROM  ptenudetail WHERE (ENUTYPE = 'TRADETP') GROUP BY LEFT(ENUITEMVALUE,1)
结果如下:
A        5
B        4
C       3
T        1

如果要在对应的ID号前显示出对应的名称,就在SELECT语名加类名列并在GROUP BY后面进行再对类名进行分组这样统计出的数据并不是我们设想的结果,为解决此类问题语句如下:

按分类ID分组统计并对应类名称显示列表如下:
SELECT  a.ENUITEMLABEL,a.ENUITEMVALUE,b.tj FROM  ptenudetail a , (SELECT LEFT(ENUITEMVALUE, 1) as t, COUNT(*) as tj FROM ptenudetail WHERE (ENUTYPE = 'TRADETP') GROUP BY LEFT(ENUITEMVALUE, 1))  b where a.ENUITEMVALUE=b.t and (ENUTYPE = 'TRADETP')
结果如下:
农、林、牧、渔业  A     5
采 矿 业                  B     4
制 造 业                  C     3
国际组织                  T      1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值