首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

分段统计的查询,该如何处理

2012-01-09 
分段统计的查询表1:usernameprice1q22w62e73r43y54u5怎么查询表1中同一user的price总和在同一范围如(2~5,6

分段统计的查询
表1:
user name price  
1 q 2
2 w 6
2 e 7
3 r 4
3 y 5
4 u 5


怎么查询表1中同一user 的price总和在同一范围如(2~5,6~8,>8等)内的数目

例如user=2 的sum(price)=6+7=13 ,user=3 的sum(price)=4+5=9 都在 >8的范围内,user数目为2个。

请大哥们帮忙,这个判断查询SQL怎么写?(oracel)

[解决办法]
select user_id,count(*)
from table1
where user_id in (select user_id 
from table1
group by user_id
having sum(price) >=9)
group by user_id;
[解决办法]
假如3种情况都要的话,可以用decode函数来实现。

select user_id from table1 group by user_id 
之后的结果集作处理。
[解决办法]
不知道LZ是不是这个意思 ...

======================sql==========================

SQL code
select decode(yy.grade,'A','2~5','B','6~8','C','large 8') as gradeClass,       count(yy.grade) as gradeCount  from (        select zz.userid,               case when (zz.price)>=2 and (zz.price)<=5                            then 'A'                            when (zz.price)>=6 and (zz.price)<=8                            then 'B'                             when zz.price > 8                            then 'C'                      end as grade          from (                select tt.userid,                        sum(tt.price) as price                  from tablename tt                 group by tt.userid                )zz        )yy group by yy.grade; 

热点排行
Bad Request.