BOOLOR_AGG¶
グループ内の少なくとも1つのブール記録が TRUE と評価される場合に TRUE を返します。
グループのすべての記録が NULL の場合、またはグループが空の場合、関数は NULL を返します。
- こちらもご参照ください。
構文¶
集計関数
BOOLOR_AGG( <expr> )
ウィンドウ関数
BOOLOR_AGG( <expr> ) OVER ( [ PARTITION BY <partition_expr> ] )
引数¶
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);データを表示します。
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 | +----+------+-------+-------+-------+データをクエリします。
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 | +----------------+----------------+----------------+----------------+
ウィンドウ関数
この例は前の例と似ていますが、入力関数が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);データを表示します。
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 | +----+-------+-------+-------+-------+データをクエリします。
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 | +----+---------------------------------------------+---------------------------------------------+---------------------------------------------+---------------------------------------------+
エラーの例
この関数にブール値に変換できない文字列が渡されると、関数はエラーを返します。
select boolor_agg('invalid type');
100037 (22018): Boolean value 'invalid_type' is not recognized