我有两张桌子
Name | ID |
--------+---------+
A | 3 |
A | 5 |
B | 1 |
ID | Count |
--------+---------+
1 | 10 |
2 | 50 |
3 | 15 |
6 | 20 |
我想生成连接这两个表的 ID 以及聚合不匹配条目的结果的东西
Name | ID | Count
--------+---------+----------
A | 3 | 15
A | 5 | 0 *//(doesn't exists)*
A | others | 80 *//(10 (ID 1) + 50 (ID 2) + 20 (ID 6))*
B | 1 | 10
B | others | 85 *//(50 (ID 2) + 15 (ID 3) + 20 (ID 6))*
到目前为止,我可以获得匹配的项目,但无法获得不匹配的聚合。
我觉得except
在每个 ID 列表上做一个并聚合不匹配的 ID 并不是一个优雅的解决方案。
想找到一个更优雅的解决问题的方法。
编辑:
我忘了提到我正在使用SQL server
. oracle 解决方案在我的场景中没有任何用处,但会在类似的场景中为 Oracle 用户提供帮助。