カテゴリ:

集計関数 (Boolean) , ウィンドウ関数 , 条件式関数

BOOLOR_AGG

グループ内の少なくとも1つのブール記録が TRUE と評価される場合に TRUE を返します。

グループのすべての記録が NULL の場合、またはグループが空の場合、関数は NULL を返します。

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

BOOLORBOOLAND_AGGBOOLXOR_AGG

構文

集計関数

BOOLOR_AGG( <expr> ) 
Copy

ウィンドウ関数

BOOLOR_AGG( <expr> ) OVER ( [ PARTITION BY <partition_expr> ] ) 
Copy

引数

expr

入力式は、ブール値に評価されるか、ブール値に変換できる式でなければなりません。

partition_expr

この列または式は、入力をパーティション(サブウィンドウ)に分割する方法を指定します。

戻り値

戻り値のデータ型はBOOLEANです。

使用上の注意

  • 数値、10進数、および浮動小数点値は、ゼロと異なる場合は「true」に変換されます。

  • 文字/テキストタイプはブール値に変換できないため、サポートされていません。

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

    • OVER 句内の ORDER BY 句。

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

集計関数

次の例は、少なくとも1つの入力値がtrueの場合、boolor_aggがtrueを返すことを示しています。

テーブルを作成してロードします。

create or replace table test_boolean_agg( id integer, c1 boolean, c2 boolean, c3 boolean, c4 boolean ); insert into test_boolean_agg (id, c1, c2, c3, c4) values (1, true, true, true, false), (2, true, false, false, false), (3, true, true, false, false), (4, true, false, false, false); 
Copy

データを表示します。

select * from test_boolean_agg; +----+------+-------+-------+-------+ | ID | C1 | C2 | C3 | C4 | |----+------+-------+-------+-------| | 1 | True | True | True | False | | 2 | True | False | False | False | | 3 | True | True | False | False | | 4 | True | False | False | False | +----+------+-------+-------+-------+ 
Copy

データをクエリします。

select boolor_agg(c1), boolor_agg(c2), boolor_agg(c3), boolor_agg(c4) from test_boolean_agg; +----------------+----------------+----------------+----------------+ | BOOLOR_AGG(C1) | BOOLOR_AGG(C2) | BOOLOR_AGG(C3) | BOOLOR_AGG(C4) | |----------------+----------------+----------------+----------------| | True | True | True | False | +----------------+----------------+----------------+----------------+ 
Copy

ウィンドウ関数

この例は前の例と似ていますが、入力関数が2つのパーティションに分割されたウィンドウ関数としての使用法を示しています(0よりも大きいIDs が1つと、0以下の IDs が1つ)。テーブルに追加データが追加されました。

テーブルに行を追加します。

insert into test_boolean_agg (id, c1, c2, c3, c4) values (-4, false, false, false, true), (-3, false, true, true, true), (-2, false, false, true, true), (-1, false, true, true, true); 
Copy

データを表示します。

select * from test_boolean_agg order by id; +----+-------+-------+-------+-------+ | ID | C1 | C2 | C3 | C4 | |----+-------+-------+-------+-------| | -4 | False | False | False | True | | -3 | False | True | True | True | | -2 | False | False | True | True | | -1 | False | True | True | True | | 1 | True | True | True | False | | 2 | True | False | False | False | | 3 | True | True | False | False | | 4 | True | False | False | False | +----+-------+-------+-------+-------+ 
Copy

データをクエリします。

select id, boolor_agg(c1) OVER (PARTITION BY (id > 0)), boolor_agg(c2) OVER (PARTITION BY (id > 0)), boolor_agg(c3) OVER (PARTITION BY (id > 0)), boolor_agg(c4) OVER (PARTITION BY (id > 0)) from test_boolean_agg order by id; +----+---------------------------------------------+---------------------------------------------+---------------------------------------------+---------------------------------------------+ | ID | BOOLOR_AGG(C1) OVER (PARTITION BY (ID > 0)) | BOOLOR_AGG(C2) OVER (PARTITION BY (ID > 0)) | BOOLOR_AGG(C3) OVER (PARTITION BY (ID > 0)) | BOOLOR_AGG(C4) OVER (PARTITION BY (ID > 0)) | |----+---------------------------------------------+---------------------------------------------+---------------------------------------------+---------------------------------------------| | -4 | False | True | True | True | | -3 | False | True | True | True | | -2 | False | True | True | True | | -1 | False | True | True | True | | 1 | True | True | True | False | | 2 | True | True | True | False | | 3 | True | True | True | False | | 4 | True | True | True | False | +----+---------------------------------------------+---------------------------------------------+---------------------------------------------+---------------------------------------------+ 
Copy

エラーの例

この関数にブール値に変換できない文字列が渡されると、関数はエラーを返します。

select boolor_agg('invalid type'); 100037 (22018): Boolean value 'invalid_type' is not recognized 
Copy