2017-11-02 6 views
0

2つの列を追加してグループ化したい。たとえば は、私は次の表を持っていると言う:SQLが2つの列を追加してグループ化する

ID -------- value1 ---------- value2  
A ------------ 2 -----------------3  
B ------------ 1 -----------------4  
c ------------ 2 -----------------2 
D ------------ 3 -----------------3 
E ------------ 2 -----------------1 
F ------------ 1 -----------------3 

あなたは、各列の合計(select value1 + value 2)を数えるFFあなたは5,5,4,6,3,4を取得します。

私は以下の結果を得たいと思います。

5 ------ 2  
4 ------ 2 
3 ------ 1 
6 ------ 1 

答えて

3

select (val1 + val2), count(*) 
from t 
group by (val1 + val2) 
order by count(*) desc; 
CTEに2列の SUMを行い、その後、ちょうど COUNT IDの合計量によってグループ化
1

これが一つの解決策である:あなただけ行うことができます

declare @tbl as table (
    id varchar(1) 
    ,val1 int 
    ,val2 int 
) 

insert into @tbl values ('A',2,3) 
insert into @tbl values ('B',1,4) 
insert into @tbl values ('C',2,2) 
insert into @tbl values ('D',3,3) 
insert into @tbl values ('E',2,1) 
insert into @tbl values ('F',1,3) 

;WITH CTE AS (
    SELECT 
     id 
     ,val1+val2 as [sum] 
    FROM @tbl 
) 
SELECT 
    [sum] 
    ,count(id) as [count] 
FROM CTE 
GROUP BY sum 
関連する問題