SQL 添加两列并按计数分组
SQL adding two columns and group by count
我想添加两列并按计数分组。
例如说我有以下 table:
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)
,你将得到 5,5,4,6,3,4。
我想得到以下结果。
5 ------ 2
4 ------ 2
3 ------ 1
6 ------ 1
这是一个解决方案:将 CTE
中的两列设为 SUM
,然后 COUNT
按总金额对 ID 进行分组:
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
你可以这样做:
select (val1 + val2), count(*)
from t
group by (val1 + val2)
order by count(*) desc;
我想添加两列并按计数分组。 例如说我有以下 table:
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)
,你将得到 5,5,4,6,3,4。
我想得到以下结果。
5 ------ 2
4 ------ 2
3 ------ 1
6 ------ 1
这是一个解决方案:将 CTE
中的两列设为 SUM
,然后 COUNT
按总金额对 ID 进行分组:
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
你可以这样做:
select (val1 + val2), count(*)
from t
group by (val1 + val2)
order by count(*) desc;