【问题标题】:Oracle query group by typeOracle 查询按类型分组
【发布时间】:2013-12-13 01:56:53
【问题描述】:

我的查询有一个输出:

Item   Type   Qty
 1       A     2
 2       A     3
 3       B     1
 4       B     2
 5       C     1
 6       D     3

要分组的类型:A、B

我需要我的输出看起来像这样:(在对数量和分组求和之后)

Type      Qty
  A        5
  B        3
OTHERS     4

当未定义类型时,它将分组在“其他”中。这是否可以使用分析函数来完成,还是我需要为此创建自己的函数?

【问题讨论】:

    标签: sql oracle group-by


    【解决方案1】:

    假设您的表/视图名称是 x,这将给出所需的输出:

    SELECT CASE WHEN type IN ('A', 'B') THEN type ELSE 'OTHERS' END AS type,
           SUM(qty) AS qty
      FROM x
    GROUP BY CASE WHEN type IN ('A', 'B') THEN type ELSE 'OTHERS' END
    ORDER BY 1
    

    【讨论】:

      【解决方案2】:
        select type,sum(qty) from (select decode(type,c,'OTHERS',d,'OTHERS') type,qty from your_table) group by type;
      
                             (or)
      
        select type,sum(qty) from (select (case when type in ('A','B') then type else 'others' end) type,qty from your_table) group by type;
      

      【讨论】:

        猜你喜欢
        • 2020-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-08
        • 1970-01-01
        • 2019-01-07
        • 1970-01-01
        相关资源
        最近更新 更多