

 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/)を参照してください。

# MOD 関数
<a name="r_MOD"></a>

2 つの数値の余りを返します。*モジュロ*演算とも呼ばれます。結果を計算するには、最初のパラメータを 2 番目のパラメータで除算します。

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

```
MOD(number1, number2)
```

## 引数
<a name="r_MOD-arguments"></a>

 *number1*   
最初の入力パラメータは、`INTEGER`、`SMALLINT`、`BIGINT`、または `DECIMAL` 数です。一方のパラメータが `DECIMAL` 型である場合は、もう一方のパラメータも `DECIMAL` 型である必要があります。一方のパラメータが `INTEGER` である場合、もう一方のパラメータは `INTEGER`、`SMALLINT`、または `BIGINT` のいずれかにします。両方のパラメータを `SMALLINT` または `BIGINT` にすることもできますが、一方のパラメータが `BIGINT` である場合に、もう一方のパラメータを `SMALLINT` にすることはできません。

 *number2*   
2 番目のパラメータは、`INTEGER`、`SMALLINT`、`BIGINT`、または `DECIMAL` 数です。*number1* と同じデータ型ルールが *number2* に適用されます。

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

両方の入力パラメータが同じ型である場合、MOD 関数の戻り型は、入力パラメータと同じ数値型になります。ただし、一方の入力パラメータが `INTEGER` である場合は、戻り型も `INTEGER` になります。有効な戻り値の型は、`DECIMAL`、`INT`、`SMALLINT`、および `BIGINT` です。

## 使用に関する注意事項
<a name="r_MOD-usage-notes"></a>

`%` をモジュロ演算子として使用できます。

## 例
<a name="r_MOD-example"></a>

ある数値を別の数値で除算したときの余りを返すには、次の例を使用します。

```
SELECT MOD(10, 4);
               
+-----+
| mod |
+-----+
|   2 |
+-----+
```

MOD 関数を使用するときに `DECIMAL` の結果を返すには、次の例を使用します。

```
SELECT MOD(10.5, 4);
               
+-----+
| mod |
+-----+
| 2.5 |
+-----+
```

MOD 関数を実行する前に数値をキャストするには、次の例を使用します。詳細については、「[CAST 関数](r_CAST_function.md)」を参照してください。

```
SELECT MOD(CAST(16.4 AS INTEGER), 5);
               
+-----+
| mod |
+-----+
|   1 |
+-----+
```

最初のパラメータを 2 で割って偶数かどうかをチェックするには、次の例を使用します。

```
SELECT mod(5,2) = 0 AS is_even;
               
+---------+
| is_even |
+---------+
| false   |
+---------+
```

モジュロ演算子として *%* を使用するには、次の例を使用します。

```
SELECT 11 % 4 as remainder;
               
 +-----------+
| remainder |
+-----------+
|         3 |
+-----------+
```

次の例では、TICKIT サンプルデータを使用します。詳細については、「[サンプルデータベース](c_sampledb.md)」を参照してください。

CATEGORY テーブル内の奇数カテゴリの情報を返すには、次の例を使用します。

```
SELECT catid, catname
FROM category
WHERE MOD(catid,2)=1
ORDER BY 1,2;

+-------+-----------+
| catid |  catname  |
+-------+-----------+
|     1 | MLB       |
|     3 | NFL       |
|     5 | MLS       |
|     7 | Plays     |
|     9 | Pop       |
|    11 | Classical |
+-------+-----------+
```