如果我们有一个包含a和b值的表格,是否有办法只添加b'如果它不是重复的?例如
a b
1 2
2 3
2 3
所以我们只得到5(而不是8)
某种
select sum(b if unique a),
from table
where ...
答案 0 :(得分:1)
您尚未指定RDBMS,但如果您使用的是支持SQL Server等窗口函数的数据库,则可以先使用WITH
子句和ROW_NUMBER()
函数查询唯一行,然后得到SUM
。
;WITH C AS(
SELECT a, b,
ROW_NUMBER() OVER (PARTITION BY a ORDER BY a) AS Rn
FROM Table1
)
SELECT SUM(b) FROM C
WHERE Rn = 1