跟踪已经汇总的元组sql

时间:2016-04-10 04:00:23

标签: sql

如果我们有一个包含a和b值的表格,是否有办法只添加b'如果它不是重复的?例如

a b
1 2
2 3
2 3

所以我们只得到5(而不是8)

某种

select sum(b if unique a),
from table
where ...

1 个答案:

答案 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

SQL Fiddle