PostgreSQLで特定の範囲の乱数を発生させる

i <= X <= j の範囲の整数を発生

select round((random() * (j - i))::numeric, 0) + i;

  • random()
    • 0.0〜1.0までのランダムな数値を取り出す
  • round(x, y)
    • 数値xを小数点以下yで四捨五入
  • ::numeric
    • 数値型にキャスト