求sql语句高手请进,(祝各位新年快乐)

xiaojinchao 2006-01-19 12:11:30
这样的语句能实现吗
表 tab
name a1 a2
a 13 8
a 20 20
b 0 5
b 40 20
求出这样的结果
name 总记录数 a1>0的数 a1>0并且a2>10
a 2 2 1
b 2 1 1

我这样的,select name,count(name),sum(decoude(sign(a1),1,1))a from tab group by name

这样能求出前两个条件,但后面那个并且的无法求出,,高手帮忙啊??
...全文
137 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Gundam_zero 2006-02-04
up
回复
子林 2006-01-19
select name,count(name),sum(decode(sign(a1),1,decode(sign(a2-10),1,1)))a from tab group by name

9i 下可以这样:
select name,count(name),sum(case when a1>0 then 1 end) a , sum(case when a1>0 and a2 >10 then 1 end) from tab group by name
回复
xiaojinchao 2006-01-19
怎么没人回答啊,,,高手们拜托啊
回复
xiaofangzyl 2006-01-19
你们这是咱想出来的,说说思路,好吗?
回复
xiaofangzyl 2006-01-19
你们写的结果都能出来, 但我不理解怎么是这样写,case when a1>0 then 1 else o end 是什么意思,还有decode(sign(a1),1,decode(sign(a2-10),1,1)是什么意思,能解释一下吗?
回复
xiaojinchao 2006-01-19
虽然分数这么少,大家也回答,谢谢啊
回复
honghong118cn 2006-01-19
select name,count(name),
sum(case when a1>0 then 1 else o end )a1,
sum(case when a1>0 and a2>10 then 1 else 0 end)a2
from tab group by name
回复
xiaoxiao1984 2006-01-19

select name,count(name),sum(decode(sign(a1),1,1,0)),sum(decode(sign(a1),1,decode(sign(a2-10),1,1,0),0)) from tab group by name

呵呵,寻漏掉一列了
回复
相关推荐
发帖
基础和管理
创建于2007-09-28

1.7w+

社区成员

Oracle 基础和管理
申请成为版主
帖子事件
创建了帖子
2006-01-19 12:11
社区公告
暂无公告