Sql 分組求和

 

if object_id('tb') is not null drop table tb

go

create table tb(編號 varchar(10),顏色 nvarchar(10),形狀 nvarchar(10))

insert into tb values('001' ,'紅色' ,'圓形') 

insert into tb values('005' ,'紅色' ,'圓形') 

insert into tb values('006' ,'紅色' ,'圓形') 

insert into tb values('008' ,'紅色' ,'圓形') 

insert into tb values('011' ,'黑色' ,'球形') 

insert into tb values('015' ,'黃色' ,'方形') 

insert into tb values('026' ,'紅色' ,'圓形') 

insert into tb values('031' ,'紅色' ,'圓形') 

insert into tb values('035' ,'黃色' ,'球形') 

insert into tb values('036' ,'黑色' ,'球形') 

insert into tb values('039' ,'黑色' ,'球形') 

insert into tb values('055' ,'黑色' ,'球形')

go

 

select fid=0,id=0,顏色+形狀 as 顏色形狀 into # from tb order by 編號

select * from #

declare @顏色形狀 nvarchar(20),@i int,@j int

update # set id=@i,fid=@j,

            @i=case when @顏色形狀=顏色形狀 then isnull(@i,0)+1 else 1 end,

            @j=case when @顏色形狀=顏色形狀 then isnull(@j,0) else isnull(@j,0)+1 end,

            @顏色形狀=顏色形狀

select * from #

 

select ltrim(max(id))+顏色形狀 as 結果 from # group by fid,顏色形狀 order by fid

 

 

drop table #

/* 結果

--------------------------------

4紅色圓形

1黑色球形

1黃色方形

2紅色圓形

1黃色球形

3黑色球形

(6 行受影響) */

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章