/* Available in MySQL and PostgreSQL */
SELECT
CountryCode,
BIT_AND(Population) and_population,
BIT_OR(Population) or_population,
BIT_XOR(Population) xor_population
FROM city
GROUP BY CountryCode
| CountryCode | and_population | or_population | xor_population |
| ABW | 29,034 | 29,034 | 29,034 |
| AFG | 288 | 1,834,940 | 1,809,428 |
| AGO | 16,384 | 2,097,148 | 1,926,184 |
| AIA | 577 | 979 | 402 |
| ALB | 270,000 | 270,000 | 270,000 |
| AND | 21,189 | 21,189 | 21,189 |
| ANT | 2345 | 2345 | 2345 |
| ARE | 0 | 1,048,575 | 659,116 |
| ARG | 0 | 4,194,303 | 2,728,625 |
| ... |
| Функция BIT_AND() в MySQL — это агрегатная функция, которая выполняет побитовую операцию AND со всеми битами в столбце таблицы. Если оба бита равны 1, в результате получается 1, иначе — 0. BIT_OR() выполняет побитовую операцию OR со всеми битами в столбце таблицы. Если оба бита равны 0, в результате получается 0, иначе — 1. BIT_XOR() выполняет побитовую операцию XOR со всеми битами в столбце таблицы. Возвращает 1, если только 1 бит из двух равен 1, иначе — 0. |