我在构建子项出现的查询时遇到了问题。我在下面附上了数据和预期的最终结果。重要的是SubitemID不是常量。因此我不能在查询中输入“subitemid like itemid+1”之类的内容。下面是我的表:
| 项目ID|子项ID|类别|数值|
| - -|- -|- -|- -|
| X轴|X1型|小行星116113|一百一十五|
| X轴|X2型|小行星116113|一百一十五|
| X轴|X1型|小行星22254| 100个|
| X轴|X2型|小行星22254| 100个|
| Y型|第1年|小行星116113| 204、58|
| Y型|第二年|小行星116113| 204、58|
| Y型|四年|小行星22254|五百个|
| Y型|五年|小行星22254|五百个|
我想对每种类别类型的值求和。因此结果应为:
| 项目ID|类别|值总和|
| - -|- -|- -|
| X轴|小行星116113|一百一十五|
| X轴|小行星22254| 100个|
| Y型|小行星116113| 204、58|
| Y型|小行星22254|五百个|
换句话说,我需要对每个Category中的1行求和,因为每个Category中每个ItemID的Value都是常量。
编辑:我的疑问如下:
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
预期结果:
| 项目ID|类别|摘要_类别1|摘要类别2|摘要_类别3|
| - -|- -|- -|- -|- -|
| X轴|小行星116113|一百一十五|100个|二百一十五|
| X轴|小行星22254|一百一十五|100个|二百一十五|
| Y型|小行星116113| 204、58|五百个|704、58分|
| Y型|小行星22254| 204、58|五百个|704、58分|
2条答案
按热度按时间7tofc5zh1#
假设共享相同项目和类别的记录之间的值始终相同,则应在此处使用不同的查询:
另一方面,如果您确实要对这些值进行 * 求和 *,则应使用:
vlju58qv2#
您 可以 使用
FIRST_VALUE
和LAST_VALUE
分析 函数 来 获取 每个 类别 的 两 个 单独 价格 。注意 : 仅 当 每个 项目 正好 有 2 个 不同 的 值 时 , 此 查询 才 有效 。
中 的 每 一 个