

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# HyperLogLog 関数
<a name="hyperloglog-functions"></a>

以下に、Amazon Redshift でサポートされる SQL の HyperLogLog 関数の説明を示します。

**Topics**
+ [HLL 関数](r_HLL_function.md)
+ [HLL\$1CREATE\$1SKETCH 関数](r_HLL_CREATE_SKETCH.md)
+ [HLL\$1CARDINALITY 関数](r_HLL_CARDINALITY.md)
+ [HLL\$1COMBINE 関数](r_HLL_COMBINE.md)
+ [HLL\$1COMBINE\$1SKETCHES 関数](r_HLL_COMBINE_SKETCHES.md)

# HLL 関数
<a name="r_HLL_function"></a>

HLL 関数は、入力式の値の HyperLogLog 基数を返します。HLL 関数は、HLLSKETCH データ型以外のすべてのデータ型で動作します。HLL 関数は NULL 値を無視します。テーブルに行がない場合、またはすべての行が NULL の場合、結果の基数は 0 になります。

## 構文
<a name="r_HLL_function-synopsis"></a>

```
HLL (aggregate_expression)
```

## 引数
<a name="r_HLL_function-argument"></a>

 *aggregate\$1expression*   
集計する値を返す任意の有効な式 (列名など)。この関数は、HLLSKETCH、GEOMETRY、GEOGRAPHY、および VARBYTE を除く,すべてのデータ型を入力としてサポートします。

## 戻り型
<a name="r_HLL_function-return-type"></a>

HLL 関数は、BIGINT または INT8 の値を返します。

## 例
<a name="r_HLL_function-examples"></a>

次の例では、テーブル `a_table` の列 `an_int` の基数を返します。

```
CREATE TABLE a_table(an_int INT);
INSERT INTO a_table VALUES (1), (2), (3), (4);

SELECT hll(an_int) AS cardinality FROM a_table;
cardinality
-------------
4
```

# HLL\$1CREATE\$1SKETCH 関数
<a name="r_HLL_CREATE_SKETCH"></a>

HLL\$1CREATE\$1SKETCH 関数は、入力式の値をカプセル化する HLLSKETCH データ型を返します。HLL\$1CREATE\$1SKETCH 関数は、任意のデータ型で動作し、NULL 値を無視します。テーブルに行がない場合、またはすべての行が NULL の場合、結果のスケッチには `{"version":1,"logm":15,"sparse":{"indices":[],"values":[]}}` などのインデックスと値のペアがありません。

## 構文
<a name="r_HLL_CREATE_SKETCH-synopsis"></a>

```
HLL_CREATE_SKETCH (aggregate_expression)
```

## 引数
<a name="r_HLL_CREATE_SKETCH-argument"></a>

 *aggregate\$1expression*   
集計する値を返す任意の有効な式 (列名など)。NULL 値は無視されます。この関数は、HLLSKETCH、GEOMETRY、GEOGRAPHY、および VARBYTE を除く,すべてのデータ型を入力としてサポートします。

## 戻り型
<a name="r_HLL_CREATE_SKETCH-return-type"></a>

HLL\$1CREATE\$1SKETCH 関数は、HLLSKETCH 値を返します。

## 例
<a name="r_HLL_CREATE_SKETCH-examples"></a>

次の例では、テーブル `a_table` で列 `an_int` の HLLSKETCH タイプを返します。JSON オブジェクトは、スケッチのインポート、エクスポート、または印刷時に、スパースの HyperLogLog スケッチを表すために使用されます。デンス HyperLogLog スケッチを表すには、文字列表現 (Base64 形式) が使用されます。

```
CREATE TABLE a_table(an_int INT);
INSERT INTO a_table VALUES (1), (2), (3), (4);

SELECT hll_create_sketch(an_int) AS sketch FROM a_table;
sketch
-------------------------------------------------------------------------------------------------------
{"version":1,"logm":15,"sparse":{"indices":[20812342,20850007,22362299,47158030],"values":[1,2,1,1]}}
(1 row)
```

# HLL\$1CARDINALITY 関数
<a name="r_HLL_CARDINALITY"></a>

HLL\$1CARDINALITY 関数は、入力 HLLSKETCH データ型の基数を返します。

## 構文
<a name="r_HLL_CARDINALITY-synopsis"></a>

```
HLL_CARDINALITY (hllsketch_expression)
```

## 引数
<a name="r_HLL_CARDINALITY-argument"></a>

 *hllsketch\$1expression*   
列名など、HLLSKETCH 型に評価される有効な式。入力値は HLLSKETCH データ型です。

## 戻り型
<a name="r_HLL_CARDINALITY-return-type"></a>

HLL\$1CARDINALITY 関数は、BIGINT または INT8 の値を返します。

## 例
<a name="r_HLL_CARDINALITY-examples"></a>

次の例では、テーブル `hll_table` の列 `sketch` の基数を返します。

```
CREATE TABLE a_table(an_int INT, b_int INT);
INSERT INTO a_table VALUES (1,1), (2,1), (3,1), (4,1), (1,2), (2,2), (3,2), (4,2), (5,2), (6,2);

CREATE TABLE hll_table (sketch HLLSKETCH);
INSERT INTO hll_table select hll_create_sketch(an_int) from a_table group by b_int;

SELECT hll_cardinality(sketch) AS cardinality FROM hll_table;
cardinality
-------------
6
4
(2 rows)
```

# HLL\$1COMBINE 関数
<a name="r_HLL_COMBINE"></a>

HLL\$1COMPINE 集計関数は、すべての入力 HLLSKETCH 値を組み合わせた HLLSKETCH データ型を返します。

2 つ以上の HyperLogLog スケッチの組み合わせは、各入力スケッチが表す個別値の結合に関する情報をカプセル化する新しい HLLSKETCH です。スケッチを組み合わせた後、Amazon Redshift は 2 つ以上のデータセット結合の基数を抽出します。複数のスケッチを組み合わせる方法の詳細については、「[例: 複数のスケッチを組み合わせて HyperLogLog スケッチを返す](r_HLL-examples.md#hll-examples-multiple-sketches)」を参照してください。

## 構文
<a name="r_HLL_COMBINE-synopsis"></a>

```
HLL_COMBINE (hllsketch_expression)
```

## 引数
<a name="r_HLL_COMBINE-argument"></a>

 *hllsketch\$1expression*   
列名など、HLLSKETCH 型に評価される有効な式。入力値は HLLSKETCH データ型です。

## 戻り型
<a name="r_HLL_COMBINE-return-type"></a>

HLL\$1COMPINE 関数は、HLLSKETCH 型を返します。

## 例
<a name="r_HLL_COMBINE-examples"></a>

次の例は、テーブル `hll_table` 内の結合された HLLSKETCH 値を返します。

```
CREATE TABLE a_table(an_int INT, b_int INT);
INSERT INTO a_table VALUES (1,1), (2,1), (3,1), (4,1), (1,2), (2,2), (3,2), (4,2), (5,2), (6,2);

CREATE TABLE hll_table (sketch HLLSKETCH);
INSERT INTO hll_table select hll_create_sketch(an_int) from a_table group by b_int;

SELECT hll_combine(sketch) AS sketches FROM hll_table;
sketches
----------------------------------------------------------------------------------------------------------------------------
{"version":1,"logm":15,"sparse":{"indices":[20812342,20850007,22362299,40314817,42650774,47158030],"values":[1,2,1,3,2,1]}}
(1 row)
```

# HLL\$1COMBINE\$1SKETCHES 関数
<a name="r_HLL_COMBINE_SKETCHES"></a>

HLL\$1COMBINE\$1SKETCHES は、2 つの HLLSKETCH 値を入力として使用し、それらを単一の HLLSKETCH に組み合わせるスカラー関数です。

2 つ以上の HyperLogLog スケッチの組み合わせは、各入力スケッチが表す個別値の結合に関する情報をカプセル化する新しい HLLSKETCH です。

## 構文
<a name="r_HLL_COMBINE_SKETCHES-synopsis"></a>

```
HLL_COMBINE_SKETCHES (hllsketch_expression1, hllsketch_expression2)
```

## 引数
<a name="r_HLL_COMBINE_SKETCHES-argument"></a>

 *hllsketch\$1expression1* と *hllsketch\$1expression2*   
列名など、HLLSKETCH 型に評価される有効な式。

## 戻り型
<a name="r_HLL_COMBINE_SKETCHES-return-type"></a>

HLL\$1COMBINE\$1SKETCHES 関数は、HLLSKETCH 型を返します。

## 例
<a name="r_HLL_COMBINE_SKETCHES-examples"></a>

次の例は、テーブル `hll_table` 内の結合された HLLSKETCH 値を返します。

```
WITH tbl1(x, y)
     AS (SELECT Hll_create_sketch(1),
                Hll_create_sketch(2)
         UNION ALL
         SELECT Hll_create_sketch(3),
                Hll_create_sketch(4)
         UNION ALL
         SELECT Hll_create_sketch(5),
                Hll_create_sketch(6)
         UNION ALL
         SELECT Hll_create_sketch(7),
                Hll_create_sketch(8)),
     tbl2(x, y)
     AS (SELECT Hll_create_sketch(9),
                Hll_create_sketch(10)
         UNION ALL
         SELECT Hll_create_sketch(11),
                Hll_create_sketch(12)
         UNION ALL
         SELECT Hll_create_sketch(13),
                Hll_create_sketch(14)
         UNION ALL
         SELECT Hll_create_sketch(15),
                Hll_create_sketch(16)
         UNION ALL
         SELECT Hll_create_sketch(NULL),
                Hll_create_sketch(NULL)),
     tbl3(x, y)
     AS (SELECT *
         FROM   tbl1
         UNION ALL
         SELECT *
         FROM   tbl2)
SELECT Hll_combine_sketches(x, y)
FROM   tbl3;
```