下图为需求:
sql脚本:
--oracle 10g
create table tbArea(id number,product varchar2(50),area varchar2(50),num number);
insert into tbArea(id,product,area,num)
select 1,'A','华北',1 from dual union
select 2,'A','华北',2 from dual union
select 3,'A','华东',3 from dual union
select 4,'A','华东',4 from dual union
select 5,'B','华南',1 from dual union
select 6,'B','东北',2 from dual union
select 7,'B','西南',3 from dual;
select * from tbArea;
---牛b的sql语句:
--方法1:两次group by
select product 商品,sum(type) 分布地区,sum(num) 数量 from (
select product ,area ,sum(num) num,1 type from tbArea
group by product,area
)group by product;
--方法2:distinct
select product 商品,count(distinct(area)) 分布地区,sum(num) 数量 from tbArea group by product;
--drop table tbArea;