日期:2014-05-18 浏览次数:20744 次
create table tb(品牌 varchar(10),零售户ID varchar(10),需求量 int) insert into tb values('01', '100', 20) insert into tb values('01', '101', 30) insert into tb values('02', '102', 40) insert into tb values('02', '100', 40) insert into tb values('03', '101', 60) go select 品牌 , count(零售户ID) 零售户数 , (select count(distinct 零售户ID) from tb) 总户数 from tb group by 品牌 /* 品牌 零售户数 总户数 ---------- ----------- ----------- 01 2 3 02 2 3 03 1 3 (所影响的行数为 3 行) */ select 品牌 , count(distinct 零售户ID) 零售户数 , (select count(distinct 零售户ID) from tb) 总户数 from tb group by 品牌 /* 品牌 零售户数 总户数 ---------- ----------- ----------- 01 2 3 02 2 3 03 1 3 (所影响的行数为 3 行) */ drop table tb
------解决方案--------------------
if object_id('tb') is not null drop table tb go create table tb ( 品牌 varchar(10), 零售户ID int, 需求量 int ) go insert into tb select '01',100,20 union all select '01',101,30 union all select '02',102,40 union all select '02',100,40 union all select '03',101,60 go select 品牌,零售户数=count(distinct 零售户ID),总户数=(select count(distinct 零售户ID) from tb) from tb group by 品牌 go /* 品牌 零售户数 总户数 ---------- ----------- ----------- 01 2 3 02 2 3 03 1 3 (3 行受影响) */