【问题标题】:SQL adding two columns and group by countSQL添加两列并按计数分组
【发布时间】:2017-11-02 14:51:08
【问题描述】:

我想添加两列并按计数分组。 例如说我有下表:

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

【问题讨论】:

    标签: sql intersystems-cache


    【解决方案1】:

    你可以这样做:

    select (val1 + val2), count(*)
    from t
    group by (val1 + val2)
    order by count(*) desc;
    

    【讨论】:

      【解决方案2】:

      这是一种解决方案:将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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-13
        • 1970-01-01
        • 2022-07-06
        • 1970-01-01
        • 2018-04-10
        • 2017-05-09
        相关资源
        最近更新 更多