我有这样的数据
=================================
COL A | COL B | COL C | VAL
=================================
5 | 6 | 3 | 2
2 | 6 | 3 | 3
5 | 6 | 3 | 4
5 | 6 | 1 | 5
如果列具有Uniquq值组合,我想要做的只是列VAL中的所有值。
在上面的案例中总数是2 + 3 + 5 = 10 第三行不计算,因为5 6 3的组合不是唯一的。
我已尝试过GROUP BY COL A,COL B,COL C,结果
=================================
COL A | COL B | COL C | VAL
=================================
5 | 6 | 3 | 2
2 | 6 | 3 | 3
5 | 6 | 1 | 5
事情是我不知道如何获得总数。 我试过WITH ROLLUP,不知怎的,这让桌子弄得乱七八糟。
任何帮助都是赞赏的。感谢。
答案 0 :(得分:1)
如果组合不是唯一的,您选择哪个值?请记住,SQL表代表无序集,因此没有一行在其他行之前或之后的概念。
根据您的示例,以下工作:
select sum(val)
from (select a, b, c, min(val) as val
from t
group by a, b, c
) t;