算術関数と演算子PostgreSQLの数多くの型に対する算術演算子が用意されています。標準算術表現法が存在しない型(例えば、日付/時刻データ型)については、後続する節で実際の動作を説明します。9.4は標準の数値型で使用可能な算術演算子を示しています。precisionデータ型で利用可能です。integral_typeを受け付けると表示されている演算子はすべてのsmallint、integer、bigintデータ型で利用可能です。説明がない限り、それぞれの演算子は引数と同じデータ型を返します。numericのように、複数の引数データ型が使われる呼び出しは、このリストの後で現れる型を使って解決されます。numeric_type剰余(余り)。8典型的な数学的用法とは違って、デフォルトでは^は左から右に適用されます。9.5に使用可能な算術関数を示します。これら関数の多くは、異なる引数型を持つ複数の形で提供されています。記述がある場合を除き、すべての形式の関数はその引数と同じデータ型を返します。複数の型をまたがる場合は上記の演算子のところで説明したのと同じ方法で解決されます。precisionデータに対する関数のほとんどはホストシステムのCライブラリの上層に実装されています。このため、精度と境界近くの場合の振舞いはホストシステムに依存して変わります。numeric_type最大公約数(余りなく入力を割る最大の正の整数)。両方の入力が0なら0を返す。numeric_type最小公倍数(両方の入力の整数倍となる最小の厳密な正の数)。両方の入力が0なら0を返す。numeric_typey/xの剰余。precision最も近い整数へ丸めます。numericでは小数点以下を切り上げて端数を処理します。precisionでは端数処理の振る舞いはプラットフォーム依存です。numericvを小数点第s位まで丸めます。小数点以下を切り上げて端数を処理します。integerlowからhighまでの範囲に広がる等幅でバケット数countのヒストグラムにおいて、operandが割り当てられるバケット番号を返す。範囲外の入力値に対しては0またはcount+1を返す。integerバケットの最小値を示す配列が与えられた時に、operandが割り当てられるバケット番号を返す。最初の最小値よりも小さい入力値に対しては0を返す。operandと配列要素は標準の比較演算子を持つ型であればどのような型でも構いません。thresholds配列はソートされていなければならず、小さいものが最初です。なければ予想外の結果となるでしょう。9.6に乱数を生成する関数を示します。void今後のrandom()呼び出しで使用されるシード(種)を設定する。引数は-1.0から1.0までの境界を含む値でなければなりません。setseed(0.12345)random()関数は単純な線形合同法を使用しています。高速ですが、暗号用途には適していません。安全な代替物としてpgcryptoモジュールを参照してください。setseed()が呼び出されると、現在のセッション内での以後の一連のrandom()の呼び出し結果はsetseed()を同じ引数で再実行することによって再現可能となります。同じセッション内でsetseed()をそれ以前に呼び出していない場合は、最初のrandom()の呼び出しによってプラットフォーム依存の乱数ビットのソースからシードを入手します。それぞれの三角関数には、角度の単位をラディアンにするものと度にするものの2種類があります。度単位の角度を扱う別の方法は、前に示した単位変換関数radians()とdegrees()を使うことです。角度を使う方法の方が、sind(30)のような特別な場合の丸め誤差を避けられるため、推奨されます。9.8に利用可能な双曲線関数を示します。