作为复杂聚合的一部分,我想知道某些数据的 按位 求和,即,如果我具有值分别为1、1、1、2、2、8的行,则按 位 求和为11。在这种情况下,值都是精确的幂两个(单个位)中的一个,因此我可以通过对各个组进行分组和求和来解决它(显然,与真实查询相比,该示例有些折磨):
select SUM(y.test) from ( select x.test from ( -- garbage test data select 1 as [test] union all select 1 union all select 1 union all select 2 union all select 2 union all select 8) x group by x.test) y
但是有没有一种干净的方法可以在[T] SQL中执行按位求和?
如果您的所有测试值都是单个位(如示例(1、2、8)),则只需SUM(DISTINCT col)在查询中使用即可。
SUM(DISTINCT col)
希望能有所帮助。
(供参考:http : //msdn.microsoft.com/en- us/library/ms187810.aspx)