Come parte di un aggregato complesso voglio sapere il bit a bit somma di alcuni dati, vale a dire se ho righe con valori 1,1,1,2,2,8 la bit somma è 11. In questo caso i valori sono tutti potenze esatte di due (bit singoli), quindi posso aggirarlo raggruppando e sommando i gruppi (ovviamente questo esempio è un po 'torturato rispetto alla query reale):l'esecuzione di una somma 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
ma c'è un modo pulito per eseguire una somma bit a bit in [T] SQL?
Marc, stai fondamentalmente parlando di OR tutti questi valori? O vuoi dire rimuovere prima i duplicati, poi aggiungere (non sono sicuro che userei il termine bitwise per quello)? – paxdiablo
@paxdiablo entrambi; OR bit a bit sul set sarebbe identico all'aggiunta univoca, poiché ognuno è una potenza assoluta di 2 –