【发布时间】:2022-11-22 00:39:28
【问题描述】:
我在构建出现子项的查询时遇到问题。我在下面附上数据和预期的最终结果。 重要的是 SubitemID 不是常量。所以我不能在我的查询中输入“subitemid like itemid+1”之类的东西。 这是我的表:
| ItemID | SubitemID | Category | Value |
|---|---|---|---|
| X | X1 | 116113 | 115 |
| X | X2 | 116113 | 115 |
| X | X1 | 222540 | 100 |
| X | X2 | 222540 | 100 |
| Y | Y1 | 116113 | 204,58 |
| Y | Y2 | 116113 | 204,58 |
| Y | Y4 | 222540 | 500 |
| Y | Y5 | 222540 | 500 |
我想对每种类别的值求和。所以结果应该是:
| ItemID | Category | Sum of Value |
|---|---|---|
| X | 116113 | 115 |
| X | 222540 | 100 |
| Y | 116113 | 204,58 |
| Y | 222540 | 500 |
换句话说,我需要对每个类别的 1 行求和,因为每个类别中每个 ItemID 的值都是常量。
编辑: 我的查询如下:
SELECT ItemID
,Category
,SUM(CASE WHEN Category = 116113 THEN ROUND(Value,4) else 0 end) as "Summary_cat1"
,SUM(CASE WHEN Category = 222540 THEN ROUND(Value,4) else 0 end) as "Summary_cat2"
,SUM(CASE WHEN Category in (116113,222540) THEN ROUND(Value,4) else 0 end) as "Summary_cat3"
FROM TABLE
GROUP BY ItemID, Category
预期成绩:
| ItemID | Category | Summary_cat1 | Summary_cat2 | Summary_cat3 |
|---|---|---|---|---|
| X | 116113 | 115 | 100 | 215 |
| X | 222540 | 115 | 100 | 215 |
| Y | 116113 | 204,58 | 500 | 704,58 |
| Y | 222540 | 204,58 | 500 | 704,58 |
【问题讨论】:
标签: oracle plsql relational-database plsqldeveloper