有一张表
户号 姓名 分组
001 张一 1
001 张二 1
001 张三 1
002 李一 1
002 李二 1
003 王一 2
003 王二 2
004 刘一 3
005 况一 3
005 况二 3
006 唐一 4我想统计每个户号有多少个人,要把组给分出来,就是每一组的不同户号分别有多少人,怎么写语句啊
户号 姓名 分组
001 张一 1
001 张二 1
001 张三 1
002 李一 1
002 李二 1
003 王一 2
003 王二 2
004 刘一 3
005 况一 3
005 况二 3
006 唐一 4我想统计每个户号有多少个人,要把组给分出来,就是每一组的不同户号分别有多少人,怎么写语句啊
select 户号 , count(*) cnt from tb group by 户号select 分组 , count(*) cnt from tb group by 分组
from table
group by 户号,姓名
if object_id('tb') is not null drop table tb
create table tb(户号 varchar(10), 姓名 varchar(50), 分组 int)
insert into tb values('001' , '张一' , 1 )
insert into tb values('001' , '张二' , 1 )
insert into tb values('002' , '李一' , 1 )
insert into tb values('002' , '李二' , 1 )
insert into tb values('003' , '王一' , 2 )
insert into tb values('003' , '王二' , 2 )
insert into tb values('004' , '唐一' , 3 )select 分组,户号,sum(1) as 人数 from tb group by 分组,户号
/*--
1 001 2
1 002 2
2 003 2
3 004 1
insert into tb values('001' , '张一' , 1 )
insert into tb values('001' , '张二' , 1 )
insert into tb values('001' , '张三' , 1 )
insert into tb values('002' , '李一' , 1 )
insert into tb values('002' , '李二' , 1 )
insert into tb values('003' , '王一' , 2 )
insert into tb values('003' , '王二' , 2 )
insert into tb values('004' , '刘一' , 3 )
insert into tb values('005' , '况一' , 3 )
insert into tb values('005' , '况二' , 3 )
insert into tb values('006' , '唐一' , 4 )select 户号 , count(*) cnt from tb group by 户号
/*
户号 cnt
---------- -----------
001 3
002 2
003 2
004 1
005 2
006 1(所影响的行数为 6 行)
*/select 分组 , count(*) cnt from tb group by 分组
/*
分组 cnt
----------- -----------
1 5
2 2
3 3
4 1(所影响的行数为 4 行)
*/
select 分组 , 户号 , count(*) cnt from tb group by 分组 , 户号
/*
分组 户号 cnt
----------- ---------- -----------
1 001 3
1 002 2
2 003 2
3 004 1
3 005 2
4 006 1(所影响的行数为 6 行)*/
drop table tb