カテゴリ:

集計関数 (Bitwise) , ウィンドウ関数 (General) , ビット単位の式関数

BITOR_AGG

グループ内のすべての非NULL 数値レコードのビット単位の OR 値を返します。

ビット位置ごとに、少なくとも1つの行のビットが1に設定されている場合、結果のビットは1に設定されます。すべての行のビットがゼロに設定されている場合、結果はゼロになります。

グループ内のすべてのレコード がNULLの場合、またはグループが空の場合、関数は NULLを返します。

エイリアス:

BITORAGG, BIT_OR_AGG, BIT_ORAGG

こちらもご参照ください。

BITAND_AGGBITXOR_AGG

BITOR

構文

集計関数

BITOR_AGG( <expr1> ) 
Copy

ウィンドウ関数

BITOR_AGG( <expr1> ) OVER ( [ PARTITION BY <expr2> ] ) 
Copy

引数

expr1

この式は、 数値 または数値にキャストできるデータ型の値に評価される必要があります。

expr2

この式は、パーティション内の行をグループ化するために使用されます。

戻り値

戻り値のデータ型は NUMBER(38, 0) です。

使用上の注意

  • 数値は最も近い INTEGER データ型に集約されます。10進値と浮動小数点値は、集約の前に最も近い整数に四捨五入されます。

  • 文字/テキスト列(データ型 VARCHAR、 CHAR、 STRINGなど)を集約すると、入力値が暗黙的に FLOATにキャストされ、値が最も近い整数に四捨五入されます。キャストできない場合、値は NULLとして扱われます。

  • これらの関数には DISTINCT キーワードを指定できますが、効果はありません。

  • この関数がウィンドウ関数として呼び出される場合、以下はサポートされていません。

    • OVER 句内の ORDER BY 句。

    • 明示的なウィンドウフレーム。

テーブルを作成し、データをロードします。

CREATE OR REPLACE TABLE bitwise_example (k INT, d DECIMAL(10,5), s1 VARCHAR(10), s2 VARCHAR(10)); INSERT INTO bitwise_example VALUES (15, 1.1, '12','one'), (26, 2.9, '10','two'), (12, 7.1, '7.9','two'), (14, NULL, NULL,'null'), (8, NULL, NULL, 'null'), (NULL, 9.1, '14','nine'); 
Copy

データを表示します。

SELECT k AS k_col, d AS d_col, s1, s2 FROM bitwise_example ORDER BY k_col; 
Copy
+-------+---------+------+------+ | K_COL | D_COL | S1 | S2 | |-------+---------+------+------| | 8 | NULL | NULL | null | | 12 | 7.10000 | 7.9 | two | | 14 | NULL | NULL | null | | 15 | 1.10000 | 12 | one | | 26 | 2.90000 | 10 | two | | NULL | 9.10000 | 14 | nine | +-------+---------+------+------+ 

データをクエリします。

SELECT BITOR_AGG(k), BITOR_AGG(d), BITOR_AGG(s1) FROM bitwise_example; 
Copy
+--------------+--------------+---------------+ | BITOR_AGG(K) | BITOR_AGG(D) | BITOR_AGG(S1) | |--------------+--------------+---------------| | 31 | 15 | 14 | +--------------+--------------+---------------+ 

データをクエリし、 GROUP BY 句を使用します。

SELECT s2, BITOR_AGG(k), BITOR_AGG(d) FROM bitwise_example group by s2 ORDER BY 3; 
Copy
+------+--------------+--------------+ | S2 | BITOR_AGG(K) | BITOR_AGG(D) | |------+--------------+--------------| | one | 15 | 1 | | two | 30 | 7 | | nine | NULL | 9 | | null | 14 | NULL | +------+--------------+--------------+ 

NUMBER 値に変換できないこの関数の文字列を渡すと、エラーが発生します。

SELECT BITOR_AGG(s2) FROM bitwise_example; 
Copy
100038 (22018): Numeric value 'one' is not recognized