Amazon Redshift は、2025 年 11 月 1 日以降、新しい Python UDF の作成をサポートしなくなります。Python UDF を使用する場合は、その日付より前に UDF を作成してください。既存の Python UDF は引き続き通常どおり機能します。詳細については、ブログ記事
MOD 関数
2 つの数値の余りを返します。モジュロ演算とも呼ばれます。結果を計算するには、最初のパラメータを 2 番目のパラメータで除算します。
構文
MOD(number1, number2)
引数
- number1
-
最初の入力パラメータは、
INTEGER、SMALLINT、BIGINT、またはDECIMAL数です。一方のパラメータがDECIMAL型である場合は、もう一方のパラメータもDECIMAL型である必要があります。一方のパラメータがINTEGERである場合、もう一方のパラメータはINTEGER、SMALLINT、またはBIGINTのいずれかにします。両方のパラメータをSMALLINTまたはBIGINTにすることもできますが、一方のパラメータがBIGINTである場合に、もう一方のパラメータをSMALLINTにすることはできません。 - number2
-
2 番目のパラメータは、
INTEGER、SMALLINT、BIGINT、またはDECIMAL数です。number1 と同じデータ型ルールが number2 に適用されます。
戻り型
両方の入力パラメータが同じ型である場合、MOD 関数の戻り型は、入力パラメータと同じ数値型になります。ただし、一方の入力パラメータが INTEGER である場合は、戻り型も INTEGER になります。有効な戻り値の型は、DECIMAL、INT、SMALLINT、および BIGINT です。
使用に関する注意事項
% をモジュロ演算子として使用できます。
例
ある数値を別の数値で除算したときの余りを返すには、次の例を使用します。
SELECT MOD(10, 4);+-----+ | mod | +-----+ | 2 | +-----+
MOD 関数を使用するときに DECIMAL の結果を返すには、次の例を使用します。
SELECT MOD(10.5, 4);+-----+ | mod | +-----+ | 2.5 | +-----+
MOD 関数を実行する前に数値をキャストするには、次の例を使用します。詳細については、「CAST 関数」を参照してください。
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 サンプルデータを使用します。詳細については、「サンプルデータベース」を参照してください。
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 | +-------+-----------+