Я работаю над проектом, в котором эффективность функции поиска имеет решающее значение.
У меня есть несколько столбцов флагов (например, флаги enum в c #).Поиск по этим данным очень быстрый (3 миллисекунды туда и обратно), но я пришел в себя, теперь мне нужно выполнить подсчет групп.
Итак, у меня есть элемент 'A', содержащий красный (1), Белый (8) и синий (64), поэтому столбец «Цвета» содержит число 73.
Для поиска я могу искать элементы с красным с помощью этого
Declare @colour int
set @colour = 1
Select *
From Items
Where (Colour & @colour) > 0
Это работаетотличный.Теперь я должен сгруппировать его (также очень быстро)
Итак, если у меня всего 8 элементов, 5 содержат красный, 3 содержат белый и 7 содержат синий, результат будет выглядеть следующим образом:
Colour Qty
------------------
1 5
8 3
64 7 ( I don't have to worry about the name )
Итак: есть ли способ, которым я могу взять число 73 и поразрядно разделить его на группы?
(Часть 2: Как мне перевести это в Linq для SQL?)
Любой советбыл бы признателен
Спасибо ^ _ ^