Oracle查询按类型分组

3

我有一个查询的输出:

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

当类型未定义时,它将分组为“其他”。使用分析函数是否可能实现这一点,还是我需要创建自己的函数?
2个回答

2
假设您的表/视图名称为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

0
  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;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接