表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)
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)
解决方案 »
- 怎么理解oracle中的几个概念??
- oracle中可以使用DATE '2006-1-1'将'2006-1-1'转换成日期型,这是什么用法
- 关于NATURAL JOIN,请大家帮忙答疑~~~
- 很疑惑的ORACLE服务命名问题-麻烦给解决下
- Oracle不用Group by 的列转行(挑战高手)
- select a.* from smtopm a INNER JOIN iir b on a.item_key!=b.itm_key上面这句话有什么好的方法使执行时间更短,还有为什么这句话会产生
- 数据库中数据字段类型转换?
- 如何定期修改某张表中的指定字段??
- 求一比较麻烦的sql
- Oracle安装故障,如何解决?火急!
- java同时更新数据库多条记录
- 如何用PL/SQL语言生成动态的EXECL文件
from table1
where user_id in (select user_id
from table1
group by user_id
having sum(price) >=9)
group by user_id;
对
select user_id from table1 group by user_id
之后的结果集作处理。
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;
=====================result========================GRADECLASS GRADECOUNT
---------- ----------
2~5 2
large 8 2