BIT_OR_AGG
Applies to ✅ Open Source Edition ✅ Express Edition ✅ Professional Edition ✅ Enterprise Edition
An aggregate function to perform the equivalent of the BIT_OR function on a data set. In other words, the resulting bits are:
-
1
at positionp
if the argument is1
at positionp
for at least one row in the group. -
0
at positionp
if the argument is0
at positionp
for every row in the group.
As with most aggregate functions, NULL
values are not aggregated.
SELECT bit_or_agg(ID), bit_or_agg(AUTHOR_ID) FROM BOOK
create.select( bitOrAgg(BOOK.ID), bitOrAgg(BOOK.AUTHOR_ID)) .from(BOOK)
Producing:
+------------+------------+ | bit_or_agg | bit_or_agg | +------------+------------+ | 7 | 3 | +------------+------------+
Dialect support
This example using jOOQ:
bitOrAgg(BOOK.ID.coerce(TINYINT))
Translates to the following dialect specific expressions:
ASE, MemSQL, Redshift, SQLDataWarehouse, SQLServer, SQLite
(CASE max( CASE (BOOK.ID & 1) WHEN 0 THEN 0 WHEN 1 THEN 1 END ) WHEN 1 THEN 1 WHEN 0 THEN 0 END + CASE max( CASE (BOOK.ID & 2) WHEN 0 THEN 0 WHEN 2 THEN 2 END ) WHEN 2 THEN 2 WHEN 0 THEN 0 END + CASE max( CASE (BOOK.ID & 4) WHEN 0 THEN 0 WHEN 4 THEN 4 END ) WHEN 4 THEN 4 WHEN 0 THEN 0 END + CASE max( CASE (BOOK.ID & 8) WHEN 0 THEN 0 WHEN 8 THEN 8 END ) WHEN 8 THEN 8 WHEN 0 THEN 0 END + CASE max( CASE (BOOK.ID & 16) WHEN 0 THEN 0 WHEN 16 THEN 16 END ) WHEN 16 THEN 16 WHEN 0 THEN 0 END + CASE max( CASE (BOOK.ID & 32) WHEN 0 THEN 0 WHEN 32 THEN 32 END ) WHEN 32 THEN 32 WHEN 0 THEN 0 END + CASE max( CASE (BOOK.ID & 64) WHEN 0 THEN 0 WHEN 64 THEN 64 END ) WHEN 64 THEN 64 WHEN 0 THEN 0 END + CASE max( CASE (BOOK.ID & -128) WHEN 0 THEN 0 WHEN -128 THEN -128 END ) WHEN -128 THEN -128 WHEN 0 THEN 0 END)
Aurora MySQL, Aurora Postgres, H2, Oracle, Snowflake
bit_or_agg(BOOK.ID)
BigQuery, CockroachDB, Databricks, DuckDB, MariaDB, MySQL, Postgres, Sybase, YugabyteDB
bit_or(BOOK.ID)
ClickHouse
groupBitOr(BOOK.ID)
DB2, HSQLDB, Hana, Informix, Teradata
(CASE max( CASE bitand( BOOK.ID, 1 ) WHEN 0 THEN 0 WHEN 1 THEN 1 END ) WHEN 1 THEN 1 WHEN 0 THEN 0 END + CASE max( CASE bitand( BOOK.ID, 2 ) WHEN 0 THEN 0 WHEN 2 THEN 2 END ) WHEN 2 THEN 2 WHEN 0 THEN 0 END + CASE max( CASE bitand( BOOK.ID, 4 ) WHEN 0 THEN 0 WHEN 4 THEN 4 END ) WHEN 4 THEN 4 WHEN 0 THEN 0 END + CASE max( CASE bitand( BOOK.ID, 8 ) WHEN 0 THEN 0 WHEN 8 THEN 8 END ) WHEN 8 THEN 8 WHEN 0 THEN 0 END + CASE max( CASE bitand( BOOK.ID, 16 ) WHEN 0 THEN 0 WHEN 16 THEN 16 END ) WHEN 16 THEN 16 WHEN 0 THEN 0 END + CASE max( CASE bitand( BOOK.ID, 32 ) WHEN 0 THEN 0 WHEN 32 THEN 32 END ) WHEN 32 THEN 32 WHEN 0 THEN 0 END + CASE max( CASE bitand( BOOK.ID, 64 ) WHEN 0 THEN 0 WHEN 64 THEN 64 END ) WHEN 64 THEN 64 WHEN 0 THEN 0 END + CASE max( CASE bitand( BOOK.ID, -128 ) WHEN 0 THEN 0 WHEN -128 THEN -128 END ) WHEN -128 THEN -128 WHEN 0 THEN 0 END)
Exasol
(CASE max( CASE bit_and( BOOK.ID, 1 ) WHEN 0 THEN 0 WHEN 1 THEN 1 END ) WHEN 1 THEN 1 WHEN 0 THEN 0 END + CASE max( CASE bit_and( BOOK.ID, 2 ) WHEN 0 THEN 0 WHEN 2 THEN 2 END ) WHEN 2 THEN 2 WHEN 0 THEN 0 END + CASE max( CASE bit_and( BOOK.ID, 4 ) WHEN 0 THEN 0 WHEN 4 THEN 4 END ) WHEN 4 THEN 4 WHEN 0 THEN 0 END + CASE max( CASE bit_and( BOOK.ID, 8 ) WHEN 0 THEN 0 WHEN 8 THEN 8 END ) WHEN 8 THEN 8 WHEN 0 THEN 0 END + CASE max( CASE bit_and( BOOK.ID, 16 ) WHEN 0 THEN 0 WHEN 16 THEN 16 END ) WHEN 16 THEN 16 WHEN 0 THEN 0 END + CASE max( CASE bit_and( BOOK.ID, 32 ) WHEN 0 THEN 0 WHEN 32 THEN 32 END ) WHEN 32 THEN 32 WHEN 0 THEN 0 END + CASE max( CASE bit_and( BOOK.ID, 64 ) WHEN 0 THEN 0 WHEN 64 THEN 64 END ) WHEN 64 THEN 64 WHEN 0 THEN 0 END + CASE max( CASE bit_and( BOOK.ID, -128 ) WHEN 0 THEN 0 WHEN -128 THEN -128 END ) WHEN -128 THEN -128 WHEN 0 THEN 0 END)
Firebird
(CASE max( CASE bin_and( BOOK.ID, 1 ) WHEN 0 THEN 0 WHEN 1 THEN 1 END ) WHEN 1 THEN 1 WHEN 0 THEN 0 END + CASE max( CASE bin_and( BOOK.ID, 2 ) WHEN 0 THEN 0 WHEN 2 THEN 2 END ) WHEN 2 THEN 2 WHEN 0 THEN 0 END + CASE max( CASE bin_and( BOOK.ID, 4 ) WHEN 0 THEN 0 WHEN 4 THEN 4 END ) WHEN 4 THEN 4 WHEN 0 THEN 0 END + CASE max( CASE bin_and( BOOK.ID, 8 ) WHEN 0 THEN 0 WHEN 8 THEN 8 END ) WHEN 8 THEN 8 WHEN 0 THEN 0 END + CASE max( CASE bin_and( BOOK.ID, 16 ) WHEN 0 THEN 0 WHEN 16 THEN 16 END ) WHEN 16 THEN 16 WHEN 0 THEN 0 END + CASE max( CASE bin_and( BOOK.ID, 32 ) WHEN 0 THEN 0 WHEN 32 THEN 32 END ) WHEN 32 THEN 32 WHEN 0 THEN 0 END + CASE max( CASE bin_and( BOOK.ID, 64 ) WHEN 0 THEN 0 WHEN 64 THEN 64 END ) WHEN 64 THEN 64 WHEN 0 THEN 0 END + CASE max( CASE bin_and( BOOK.ID, -128 ) WHEN 0 THEN 0 WHEN -128 THEN -128 END ) WHEN -128 THEN -128 WHEN 0 THEN 0 END)
Trino
bitwise_or_agg(BOOK.ID)
Vertica
hex_to_integer(to_hex(bit_or(hex_to_binary(to_hex(BOOK.ID)))))
Access, Derby
/* UNSUPPORTED */
Generated with jOOQ 3.21. Support in older jOOQ versions may differ. Translate your own SQL on our website
Feedback
Do you have any feedback about this page? We'd love to hear it!