四則演算以外にも算術関数は色々ある。試すためのサンプルのテーブルを作成。
postgres=# CREATE TABLE SampleMath
postgres-# (m NUMERIC (10,3),
postgres(# n INTEGER,
postgres(# p INTEGER);
CREATE TABLE
ここでNUMERIC型というものが出てきた。これはNUMERIC(全体の桁数, 少数の桁数)という形式で数値の大きさを指定している。
作成したテーブルの内容の確認。
postgres=# SELECT * FROM SampleMath;
m | n | p
----------+---+---
500.000 | 0 |
-180.000 | 0 |
| |
| 7 | 3
| 5 | 2
| 4 |
8.000 | | 3
2.270 | 1 |
5.555 | 2 |
| 1 |
8.760 | |
(11 rows)
ABS:絶対値を求める関数。数値の符号を考えない、ゼロからの距離の大きさを表す数値。下記の結果を見るとマイナスの符号が取れているのがわかる。
postgres=# SELECT m, ABS(m) AS abs_col
postgres-# FROM SampleMath;
m | abs_col
----------+---------
500.000 | 500.000
-180.000 | 180.000
|
|
|
|
8.000 | 8.000
2.270 | 2.270
5.555 | 5.555
|
8.760 | 8.760
(11 rows)
MOD:剰余。割り算のあまりを求める関数。小数の計算が入るとあまりという概念がなくなるので、整数型の列でのみ使える。7/3のあまりは1、5/2のあまりは1。SQL ServerではMOD関数ではなく%
という演算子を使ってあまりを出す。
postgres=# SELECT n, p, MOD(n, p) AS mod_col
postgres-# FROM SampleMath;
n | p | mod_col
---+---+---------
0 | |
0 | |
| |
7 | 3 | 1
5 | 2 | 1
4 | |
| 3 |
1 | |
2 | |
1 | |
| |
(11 rows)