gpt4 book ai didi

sql - Oracle - 如何对相关项目求和?

转载 作者:行者123 更新时间:2023-12-02 06:31:39 24 4
gpt4 key购买 nike

我有一组数据要报告(在 Oracle 12c 中)。我想根据“ITEM”列的值显示某些分组的总和。如果 ITEM = ('A'、'B' 或 'C'),则它们会“分组”在一起,并且将列 Cost1 和 Cost2 的值相加。这称为“Group1”。 Group2 包含 ITEMS('D、E、F')。只有 6 个分组,由大约 13 个静态/固定项组成。我确切地知道每个分组中的项目是什么。

这是一组示例数据,边框显示了应该分组的内容。第二个 list 显示了输出应该是什么样子。我想我想在一个案例陈述中求和,但我似乎无法理解它......

Grouping output

最佳答案

CASE 语句适用于这种一次性值转换:

SELECT
Year,
CASE
WHEN Item IN ('A', 'B', 'C') THEN 'Group1'
WHEN Item IN ('D', 'E', 'F') THEN 'Group2'
ELSE 'Others' END AS Item,
SUM(Cost1),
SUM(Cost2)
FROM myTable
GROUP BY
Year,
CASE
WHEN Item IN ('A', 'B', 'C') THEN 'Group1'
WHEN Item IN ('D', 'E', 'F') THEN 'Group2'
ELSE 'Others' END;

请注意,GROUP BY 表达式必须完全在列选择列表中声明,除非您必须删除别名(AS Item)。

关于sql - Oracle - 如何对相关项目求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34417352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com