Оконные функции / Агрегирующие

/* Available in MySQL and PostgreSQL */
SELECT
    Name,
    CountryCode,
    BIT_AND(Population) over p_code and_population,
    BIT_OR(Population) over p_code or_population,
    BIT_XOR(Population) over p_code xor_population
FROM city
WINDOW p_code AS (partition BY CountryCode)


Name CountryCode and_population or_population xor_population
Oranjestad ABW 29,034 29,034 29,034
Herat AFG 288 1,834,940 1,809,428
Qandahar AFG 288 1,834,940 1,809,428
Kabul AFG 288 1,834,940 1,809,428
Mazar-e-Sharif AFG 288 1,834,940 1,809,428
Benguela AGO 16,384 2,097,148 1,926,184
Lobito AGO 16,384 2,097,148 1,926,184
Huambo AGO 16,384 2,097,148 1,926,184
Luanda AGO 16,384 2,097,148 1,926,184
...

Функция BIT_AND() в MySQL — это агрегатная функция, которая выполняет побитовую операцию AND со всеми битами в столбце таблицы. Если оба бита равны 1, в результате получается 1, иначе — 0.
BIT_OR() выполняет побитовую операцию OR со всеми битами в столбце таблицы. Если оба бита равны 0, в результате получается 0, иначе — 1.
BIT_XOR() выполняет побитовую операцию XOR со всеми битами в столбце таблицы. Возвращает 1, если только 1 бит из двух равен 1, иначе — 0.