分组统计并计算每组数量sql
有 字段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:

- 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的更多相关文章
- mysql利于cte进行分组统计并计算占比
CTE定义:一个公共表表达式(common table expression)是一个命名的临时结果集,它在一条单独的语句中有效,可以在语句中被引用多次. CTE基本语法: WITH cte1 [(co ...
- 【转载】Sqlserver使用Group By进行分组并计算每个组的数量
在SQL语句查询中,Group By语句时常用来进行分组操作,有时候在分组的同时还需要计算出每个组的数量多少.在Sqlserver数据库中可以使用Group By加Count聚合函数来实现此功能,即通 ...
- SQL Fundamentals: 分组统计查询(FROM-WHERE-GROUPBY-HAVING-SELECT-ORDER BY)
SQL Fundamentals || Oracle SQL语言 统计函数 单字段分组统计(GROUP BY) 多字段分组统计 HAVING子句 控制操作的显示列:基本的SELECT语句 控制行:限定 ...
- Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等)
Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等) 子查询 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 = from c i ...
- sql server利用开窗函数over() 进行分组统计
这是一道常见的面试题,在实际项目中经常会用到. 需求:求出以产品类别为分组,各个分组里价格最高的产品信息. 实现过程如下: declare @t table( ProductID int, Produ ...
- SQL 分组统计 行转列 CASE WHEN 的使用
原文地址:http://blog.itpub.net/26451903/viewspace-733526 原文在分组统计部分 sql是有问题的 本文已将sql改正 已用红色标记 Cas ...
- 010.简单查询、分组统计查询、多表连接查询(sql实例)
-------------------------------------day3------------ --添加多行数据:------INSERT [INTO] 表名 [(列的列表)] --SEL ...
- 【SQL Server 2012】按倒序存储“分组统计”结果的临时表到新建表
程序预先说明: 本文访问的数据库是基于存有RDF三元组的开源数据库Localyago修改的库,其中只有一个表,表中有五个属性:主语subject.谓语predict.宾语object.主语的编号sub ...
- sql group by hour 按小时分组统计
Time字段以小时分组统计 select datepart(hour,time) hour,count(1) count from table where Similarity<75 group ...
随机推荐
- JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解
二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...
- SpringMVC中遇到的Http400 Bad Request 总结
在搭建SpringMVC环境,在使用中遇到了多次Bad Request的连接,下面来总结下. 1.参数类型不对,如后台实体类的属性为int,但传来的参数为字符串 2.因为我的粗心,本来是要通过Ajax ...
- BZOJ 4723: [POI2017]Flappy Bird
Description 从一个点到一条直线,每次纵坐标只能增加或减少1,有些位置有障碍,求最少增加步数. Sol 贪心. 或许是贪心吧...反正在可到达的范围内,纵坐标尽量小... 做的时候维护一下两 ...
- jquery----中级函数
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- JavaScript——理解闭包及作用
js是一个函数级语言,变量的作用域是: 内部可以访问内部,内部可以访问外部,外部不能访问内部. 如果要在外部,访问函数内部的变量,就要用到闭包.闭包就是指访问到了本不该访问的变量. 闭包作用1:实现封 ...
- 在react native用到的javascript 的一些关键知识(整理中)
发现了一个讲解javascript的好网站,分享一下,讲的非常棒! 注意,这些文章都可以选择中文进行阅读! 下面这个连接是关于prototype的: https://developer.mozilla ...
- 个人Win10 +archlinux安装笔记
win10+archlinux 1.查看磁盘并分区并挂载1.1 分区/dev/sda1 WIN10 保留分区/dev/sda2 WIN10 ESP分区(EFI)/dev/sda3 WIN10 MSR分 ...
- Linux与Windows xp操作系统启动过程
Linux启动过程: 第一步,加载BIOS,当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备 ...
- sql server 语句使用规范
Sql语句使用规范 规范内容以及注意事项: 1.查询时候使用top 10 /top 100 和where 字句控制每次执行SQL 返回的结果集合,在满足业务需求的同时返回最小的结果. 2.使用数据投影 ...
- MongoDB的ObjectId和基本操作增删改查(3)
ObjectId 基本操作增删改查 增: insert 介绍: mongodb存储的是文档,. 文档是json格式的对象. 语法: db.collectionName.insert(document) ...