関数の種類

算術関数

四則演算以外にも算術関数は色々ある。試すためのサンプルのテーブルを作成。

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)