一个sql问题(100分)

  • 主题发起人 主题发起人 ff_ff
  • 开始时间 开始时间
F

ff_ff

Unregistered / Unconfirmed
GUEST, unregistred user!
表A
字段
id, 地域address , 水质level
2 北京, I
3 上海, II
5 广东, III
6 北京, I

求:
id, 地域address, 水质I总数,水质II总数,水质III总数
 
[:(],你用count就行了,分别算出三个总数,再合起来
 
合起来,不好整
 
用复合SQL就可以合起来,但是有时候不一定什么事情都用SQL语句搞定,这样往往速度更慢。
 
luyear,你用sql写一写,实际点。
 
select address ,sum(case when level = 'I' then 1 else 0 end ) as 水质I总数,sum(case when level = 'II' then 1 else 0 end ) as 水质II总数,
sum(case when level = 'III' then 1 else 0 end ) as 水质III总数 from a group by address order by address
 
create table a (
id int,
address varchar(200),
level varchar(10))

insert into a values(1,'北京','I')
insert into a values(2,'北京','II')
insert into a values(3,'上海','I')
insert into a values(4,'上海','II')
insert into a values(5,'广东','I')
insert into a values(6,'上海','II')

select address ,sum(case when level = 'I' then 1 else 0 end ) as 水质I总数,sum(case when level = 'II' then 1 else 0 end ) as 水质II总数,
sum(case when level = 'III' then 1 else 0 end ) as 水质III总数 from a group by address order by address
 
其实最好的 还是用计算字段来做 简单点
 
所求结果的 id列 不明。
 
id,是自增字段
 
接受答案了.
 
后退
顶部