Есть ли способ группировки результатов выбора по отдельным битам, установленным в столбце? То есть игнорирование комбинаций различных битов (в противном случае достаточно простого group by column
).
Например, если предположить, что таблица имеет значения от 1 до 10 для столбца group-by ровно один раз (представлена ниже с двоичным представлением для упрощения построения / проверки следующего результата оператора group-by):
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
10 1010
эффект группировки, которого я хочу достичь, будет выглядеть так:
select <bit>, count(*), group_concat(<column>) from <table> group by <...>
0 5 1,3,5,7,9
1 5 2,3,6,7,10
2 4 4,5,6,7
3 3 8,9,10
при условии, что первый бит равен "бит 0".
В настоящее время я использую MySQL, поэтому в идеале решение должно работать там; но я был бы заинтересован в других решениях СУБД, если таковые имеются.