oracle下如何统计同一类型的记录的条数 5
1 201103 日本
1 201104 中国
2 201105 中国
2 201106 中国
2 201107 日本
一句SQL之后查询出来的结果是:
type cardNo orgName num(记录数)
1 201103 日本 1
1 201104 中国 1
2 201105 中国 2
2 201106 中国 2
2 201107 日本 1 展开
1、创建测试表;
create table test_type_num(type varchar2(20),cardNo varchar2(20),orgName varchar2(20));
2、插入测试数据;
insert into test_type_num values('1','201103','日本');
insert into test_type_num values('1','201104','中国');
insert into test_type_num values('2','201105','中国');
insert into test_type_num values('2','201106','中国');
insert into test_type_num values('2','201107','日本');
commit;
3、查询表中全量数据;select t.*, rowid from test_type_num t;
4、编写语句,统计同一类型的记录的条数;
select t.*, count(1) over(partition by type, orgname) cnt from test_type_num t ;
,t.cardNo
,t.orgName
,count(*) over(partition by t.type,t.cardNo,t.orgName) num
from tab t
group by name