トップページに戻る    次のSQLパズルへ    前のSQLパズルへ

2-3-23 modを使った数列

SQLパズル

以下の出力結果を作成する。

出力結果
 n  Val1  Val2  Val3  Val4
--  ----  ----  ----  ----
 1     1    -1     4     3
 2     2    -2     3     2
 3     3    -3     2     1
 4     4    -4     1     5
 5     0     0     5     4
 6     1    -1     4     3
 7     2    -2     3     2
 8     3    -3     2     1
 9     4    -4     1     5
10     0     0     5     4
11     1    -1     4     3
12     2    -2     3     2
13     3    -3     2     1
14     4    -4     1     5
15     0     0     5     4


SQL

select RowNum as n,
mod(RowNum,5) as Val1,
-mod(RowNum,5) as Val2,
-mod(RowNum,5)+5 as Val3,
-mod(RowNum+1,5)+5 as Val4
  from all_catalog
 where RowNum <=15;


解説

5周期なので5で割った余りを使います。
Val2とVal3とVal4は、
減少して急に増加するから、余りの符号はマイナスにし、
定数として切片を指定してます。

Val4は、
y=f(x)のグラフをX軸に1だけ平行移動させる考え方を使って
Val3をX軸に1だけ平行移動させたと考えて
5-mod(RowNum+1,5)
としてます。