在下面的示例表中,我试图找出一种在两种情况下对标记求和的方法:第一种,当标记“C”存在于单个 id 中时,第二种,当标记“C”不存在时存在于一个 id 中(参见 id 1 或 2)。在第一种情况下,我想在该 id 中排除标记“A”的金额(请参阅下面所需转换表中的 id 3)。在第二种情况下,我想不执行排除操作,而是对分数进行简单的总和。
换句话说,对于同时包含标记“A”和“C”的 id,我想将“A”的金额设为零。对于不包含标记“C”但包含标记“A”的 id,请保留原始数量与标记“A”相对应。
我想要的输出在底部。我考虑过尝试对 id 进行分区或使用 EXISTS 命令,但我在概念化解决方案时遇到了麻烦。如果你们中的任何人都可以看看并指出我正确的方向,将不胜感激:)
示例表:
id mark amount
------------------
1 A 1
2 A 3
2 B 2
3 A 1
3 C 3
所需的转换:
id mark amount
------------------
1 A 1
2 A 3
2 B 2
3 A 0
3 C 3
所需的输出:
mark sum(amount)
--------------------
A 4
B 2
C 3