六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 47|回复: 0

分类统计

[复制链接]

升级  20%

2

主题

2

主题

2

主题

童生

Rank: 1

积分
10
 楼主| 发表于 2013-1-27 04:53:33 | 显示全部楼层 |阅读模式
不知道哪里看到的问题,觉得思路还不错,记录下来,应该有更好的方法吧

编号  地区  类型  数量
0002  中国  b     250
0006  中国  c     130
0001  中国  a     100
0008  中国  b     30
0009  中国  c     80
0007  美国  c     190
0005  美国  a     210
0003  美国  a     50
0004  美国  b     180

地区  类型a的总量    类型b的总量   类型c的总量
中国    100             280           210
美国     260            180           190

--create database test
create table tab1(
编号 varchar(20),
地区 varchar(20),
类型 varchar(20),
数量 int
)


insert into tab1 values('0002','中国','b',250)
insert into tab1 values('0006','中国','c',130)

insert into tab1 values('0001','中国','a','100')
insert into tab1 values('0008','中国','b','30')
insert into tab1 values('0009','中国','c','80')
insert into tab1 values('0007','美国','c','190')
insert into tab1 values('0005','美国','a','210')
insert into tab1 values('0003','美国','a','50')
insert into tab1 values('0004','美国','b','180')

select * from tab1

--select sum(数量) as 数量,地区,类型 as 类型 from tab1 group by 类型,地区



select 地区,sum(case when 类型='a' then 数量 else 0 end) as '类型a的总量',
sum(case when 类型='b' then 数量 else 0 end) as 类型b的总量,
sum(case when 类型='c' then 数量 else 0 end) as 类型c的总量 from tab1 group by  地区
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表