Como parte de un agregado complejo quiero saber el nivel de bits suma de algunos datos, es decir, si tengo filas con valores 1,1,1,2,2,8 la suma es bit a bit 11. En este caso, los valores son todos potencias exactas de dos (bits individuales), por lo que puedo hackear agrupando y sumando sobre los grupos (obviamente este ejemplo es un poco torturado en comparación con la consulta real):la realización de una suma bit a bit
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
, pero ¿hay una manera limpia de realizar una suma bit a bit en [T] SQL?
Marc, ¿Básicamente estás hablando de ORing todos esos valores? ¿O quiere decir eliminar primero los duplicados, luego agregar (sin embargo, no estoy seguro de que usaría el término en bits para eso)? – paxdiablo
@paxdiablo ambos; a nivel de bit O sobre el conjunto sería idéntico al agregado único, ya que cada uno es una potencia absoluta de 2 –