MOD 関数 - Amazon Redshift

MOD 関数

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

構文

MOD(number1, number2)

引数

number1

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

number2

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

戻り型

両方の入力パラメータが同じ型である場合、MOD 関数の戻り型は、入力パラメータと同じ数値型になります。ただし、一方の入力パラメータが INTEGER である場合は、戻り型も INTEGER になります。有効な戻り値の型は、DECIMALINTSMALLINT、および 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 | +-------+-----------+