怎么写下面的分组统计SQL语名
列
ID SALE_PRICE
2 1500
ID SALE_PRICE
3 1600
ID SALE_PRICE
4 3500
ID SALE_PRICE
5 4500
ID SALE_PRICE
6 2800
分组按段统计
1000-2000
2000-3000
............
结果
Totale T1
2100 1000-2000
。。。。。。。。
问题点数:20、回复次数:7Top
1 楼lzymagi(逸)回复于 2004-09-03 12:38:13 得分 2
能否说清楚点.按什么分组.如何对应?Top
2 楼139274()回复于 2004-09-03 12:53:13 得分 0
就是对SALE_PRICE按段分组啊
价格在:1000-2000 分一段
价格在:2000-3000 分一段
价格在:3000-4000 分一段
然后统计SALE_PRICE合计
--------------------------
Top
3 楼zlp321002(Life Is Good,Let's Shine)回复于 2004-09-03 12:58:40 得分 5
Totale T1 ???????????????
2100 1000-2000 --是不是楼主写错了 3100
。。。。。。。。Top
4 楼lzymagi(逸)回复于 2004-09-03 13:02:16 得分 5
create ##temp (total bigint,t1 varchar(20))
insert ##temp select sum(sale_price),'1000-2000' from table where sale_price > 1000 and sale_price <= 2000
insert ##temp select sum(sale_price),'1000-2000' from table where sale_price > 2000 and sale_price <= 3000
insert ##temp select sum(sale_price),'1000-2000' from table where sale_price > 3000 and sale_price <= 4000
select * from ##temp
这是通过临时表来做的.
另外也可能通过一条语句来做(用CASE),自己想一下吧Top
5 楼139274()回复于 2004-09-03 13:37:59 得分 0
这么复杂吗
一条SQL语句不能搞?Top
6 楼cxingh()回复于 2004-09-03 13:53:50 得分 8
Create table #bb(Id int, price float)
insert into #bb
select 2,1500
insert into #bb
select 3,1600
insert into #bb
select 4,3500
insert into #bb
select5,4500
insert into #bb
select 6,2800
select * from #bb
select Convert(varchar(5),(convert( int, price/1000)-1)*1000) +'~' + Convert(varchar(5),convert( int, price/1000)*1000),
sum(price)
from #bb
group by Convert(varchar(5),(convert( int, price/1000)-1)*1000) +'~' + Convert(varchar(5),convert( int, price/1000)*1000)
注: 如果Price是int型 Convert(varchar(5),(convert( int, price/1000)-1)*1000) +'~' + Convert(varchar(5),convert( int, price/1000)*1000)
中的转换成int型可以省去Top
7 楼tinghuyang(小胡)回复于 2004-09-22 16:14:43 得分 0
upTop




