有 字段A 和B
比如数据如下
A  B
1  2
1  3
1  4 
2  2
2  3

统计出的sql结果:

A   count

1   3

2   2

select a,count(b) from t group by a;
--或count(b) over (partition by a)

如统计一级会计科目数量的sql:

  1. select fo,count(dispname)from(
  2. select substr(subjcode,1,4) fo,bd_accsubj.dispname,
  3. bd_accsubj.pk_accsubj, bd_accsubj.pk_glorgbook
  4. from bd_accsubj
  5. where pk_glorgbook in(select pk_glorgbook from bd_glorgbook where glorgbookcode= '010502-0001' )
  6. order by dispname)
  7. 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 ……)等,略有区别,挺有意思,有兴趣可以小研究下

  1. select distinct fo,count(dispname) over( partition by fo) num1 from
  2. (
  3. select substr(subjcode,1,4) fo,bd_accsubj.dispname,
  4. bd_accsubj.pk_accsubj, bd_accsubj.pk_glorgbook
  5. from bd_accsubj
  6. where pk_glorgbook in(select pk_glorgbook from bd_glorgbook where glorgbookcode= '010502-0001' )
  7. order by dispname)
  8. order by fo

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

不加distinct fo

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

  1. select fo,
  2. (select subjname
  3. from bd_accsubj
  4. where subjcode = fo
  5. and pk_glorgbook = '0001E1100000000000MX') aa,num1
  6. from (select fo, count(dispname)num1
  7. from (select substr(subjcode, 1, 4) fo,
  8. bd_accsubj.dispname,
  9. bd_accsubj.pk_accsubj,
  10. bd_accsubj.pk_glorgbook
  11. from bd_accsubj
  12. where pk_glorgbook in
  13. (select pk_glorgbook
  14. from bd_glorgbook
  15. where glorgbookcode = '010101-0001')
  16. order by dispname)
  17. group by fo)
  18. 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的更多相关文章

  1. mysql利于cte进行分组统计并计算占比

    CTE定义:一个公共表表达式(common table expression)是一个命名的临时结果集,它在一条单独的语句中有效,可以在语句中被引用多次. CTE基本语法: WITH cte1 [(co ...

  2. 【转载】Sqlserver使用Group By进行分组并计算每个组的数量

    在SQL语句查询中,Group By语句时常用来进行分组操作,有时候在分组的同时还需要计算出每个组的数量多少.在Sqlserver数据库中可以使用Group By加Count聚合函数来实现此功能,即通 ...

  3. SQL Fundamentals: 分组统计查询(FROM-WHERE-GROUPBY-HAVING-SELECT-ORDER BY)

    SQL Fundamentals || Oracle SQL语言 统计函数 单字段分组统计(GROUP BY) 多字段分组统计 HAVING子句 控制操作的显示列:基本的SELECT语句 控制行:限定 ...

  4. Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等)

    Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等) 子查询 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 = from c i ...

  5. sql server利用开窗函数over() 进行分组统计

    这是一道常见的面试题,在实际项目中经常会用到. 需求:求出以产品类别为分组,各个分组里价格最高的产品信息. 实现过程如下: declare @t table( ProductID int, Produ ...

  6. SQL 分组统计 行转列 CASE WHEN 的使用

    原文地址:http://blog.itpub.net/26451903/viewspace-733526 原文在分组统计部分  sql是有问题的     本文已将sql改正   已用红色标记  Cas ...

  7. 010.简单查询、分组统计查询、多表连接查询(sql实例)

    -------------------------------------day3------------ --添加多行数据:------INSERT [INTO] 表名 [(列的列表)] --SEL ...

  8. 【SQL Server 2012】按倒序存储“分组统计”结果的临时表到新建表

    程序预先说明: 本文访问的数据库是基于存有RDF三元组的开源数据库Localyago修改的库,其中只有一个表,表中有五个属性:主语subject.谓语predict.宾语object.主语的编号sub ...

  9. sql group by hour 按小时分组统计

    Time字段以小时分组统计 select datepart(hour,time) hour,count(1) count from table where Similarity<75 group ...

随机推荐

  1. JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解

    二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...

  2. SpringMVC中遇到的Http400 Bad Request 总结

    在搭建SpringMVC环境,在使用中遇到了多次Bad Request的连接,下面来总结下. 1.参数类型不对,如后台实体类的属性为int,但传来的参数为字符串 2.因为我的粗心,本来是要通过Ajax ...

  3. BZOJ 4723: [POI2017]Flappy Bird

    Description 从一个点到一条直线,每次纵坐标只能增加或减少1,有些位置有障碍,求最少增加步数. Sol 贪心. 或许是贪心吧...反正在可到达的范围内,纵坐标尽量小... 做的时候维护一下两 ...

  4. jquery----中级函数

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. JavaScript——理解闭包及作用

    js是一个函数级语言,变量的作用域是: 内部可以访问内部,内部可以访问外部,外部不能访问内部. 如果要在外部,访问函数内部的变量,就要用到闭包.闭包就是指访问到了本不该访问的变量. 闭包作用1:实现封 ...

  6. 在react native用到的javascript 的一些关键知识(整理中)

    发现了一个讲解javascript的好网站,分享一下,讲的非常棒! 注意,这些文章都可以选择中文进行阅读! 下面这个连接是关于prototype的: https://developer.mozilla ...

  7. 个人Win10 +archlinux安装笔记

    win10+archlinux 1.查看磁盘并分区并挂载1.1 分区/dev/sda1 WIN10 保留分区/dev/sda2 WIN10 ESP分区(EFI)/dev/sda3 WIN10 MSR分 ...

  8. Linux与Windows xp操作系统启动过程

    Linux启动过程: 第一步,加载BIOS,当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备 ...

  9. sql server 语句使用规范

    Sql语句使用规范 规范内容以及注意事项: 1.查询时候使用top 10 /top 100 和where 字句控制每次执行SQL 返回的结果集合,在满足业务需求的同时返回最小的结果. 2.使用数据投影 ...

  10. MongoDB的ObjectId和基本操作增删改查(3)

    ObjectId 基本操作增删改查 增: insert 介绍: mongodb存储的是文档,. 文档是json格式的对象. 语法: db.collectionName.insert(document) ...