Oracle 查询按类型分组
Posted
技术标签:
【中文标题】Oracle 查询按类型分组【英文标题】:Oracle query group by type 【发布时间】: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
当未定义类型时,它将分组在“其他”中。这是否可以使用分析函数来完成,还是我需要为此创建自己的函数?
【问题讨论】:
【参考方案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;
【讨论】:
以上是关于Oracle 查询按类型分组的主要内容,如果未能解决你的问题,请参考以下文章
oracle 如何按天分组?比如一个表有个字段ST(date 类型)精确到秒,如何使用ST按天分组?