

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 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/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# MURMUR3\$132\$1HASH
<a name="MURMUR3_32_HASH"></a>

MURMUR3\$132\$1HASH 函數會計算所有常見資料類型 (包括數字和字串類型) 的 32 位元 Murmur3A 非加密雜湊。

## 語法
<a name="MURMUR3_32_HASH-syntax"></a>

```
MURMUR3_32_HASH(value [, seed])
```

## 引數
<a name="MURMUR3_32_HASH-arguments"></a>

 *value*   
要進行雜湊的輸入值。Amazon Redshift 雜湊輸入值的二進位表示。這種行為類似於 [FNV\$1HASH 函數](r_FNV_HASH.md)，但該值被轉換為 [Apache Iceberg 32 位元 Murmur3 雜湊規格](https://iceberg.apache.org/spec/#appendix-b-32-bit-hash-requirements)指定的二進位表示。

 *seed*   
雜湊函數的 INT 種子。此為選用引數。如果未指定，Amazon Redshift 將使用預設種子 0。這會允許組合多個欄位的雜湊，而無須進行轉換或串連。

## 傳回類型
<a name="MURMUR3_32_HASH-return-type"></a>

函數會傳回 INT。

## 範例
<a name="MURMUR3_32_HASH-example"></a>

下列範例會分別傳回數字、字串 'Amazon Redshift' 及兩個值串連之後的 Murmur3 雜湊。

```
select MURMUR3_32_HASH(1);
    
    MURMUR3_32_HASH
----------------------
 1392991556
(1 row)
```

```
select MURMUR3_32_HASH('Amazon Redshift');
    
    MURMUR3_32_HASH
----------------------
 -1563580564
(1 row)
```

```
select MURMUR3_32_HASH('Amazon Redshift', MURMUR3_32_HASH(1));
    
    MURMUR3_32_HASH
----------------------
 -1346554171
(1 row)
```

## 使用須知
<a name="MURMUR3_32_HASH-usage-notes"></a>

如要運算包含多個欄位資料表的雜湊，您可以運算第一個欄位的 Murmur3 雜湊，然後將其做為種子傳遞給第二個欄位的雜湊。然後，其會將第二個欄位的 Murmur3 雜湊做為種子傳遞至第三個欄位的雜湊。

以下範例會建立種子來雜湊包含多個欄位的資料表。

```
select MURMUR3_32_HASH(column_3, MURMUR3_32_HASH(column_2, MURMUR3_32_HASH(column_1))) from sample_table;
```

相同屬性可以用來運算字串串連的雜湊。

```
select MURMUR3_32_HASH('abcd');
   
   MURMUR3_32_HASH
---------------------
 1139631978
(1 row)
```

```
select MURMUR3_32_HASH('cd', MURMUR3_32_HASH('ab'));
   
   MURMUR3_32_HASH
---------------------
 1711522338
(1 row)
```

雜湊函數會使用輸入的類型來判斷要雜湊的位元組數。如有必要，其會使用轉換來強制使用特定類型。

以下範例使用不同的輸入類型來產生不同結果。

```
select MURMUR3_32_HASH(1, MURMUR3_32_HASH(1));
   
   MURMUR3_32_HASH
--------------------
 -1193428387
(1 row)
```

```
select MURMUR3_32_HASH(1);
   
   MURMUR3_32_HASH
----------------------
 1392991556
(1 row)
```

```
select MURMUR3_32_HASH(1, MURMUR3_32_HASH(2));
   
   MURMUR3_32_HASH
----------------------
 1179621905
(1 row)
```