PostgreSQL: 특정 범위의 랜덤 숫자 추출하는 방법

PostgreSQL: 특정 범위의 랜덤 숫자 추출하는 방법
PGSQL에서 SELECT random(); 사용하면 0.0 <= x < 1.0 범위의 난수를 반환해주는데, random() 을 이용하여 특정 범위의 정수 값을 램덤하게 추출하는 방법을 소개합니다. random() 은 난수를 반환하기 때문에 trunc() 를 이용하여 정수로 바꾸고, generate_series() 를 이용하여 1백만번의 반복 실행으로 최소값과 최대값을 확인하여 지정한 범위대로 실행이되는지 확인해보겠습니다. 0 ~ 10 사이의 정수 trunc() 제거하면 0.0 <= x < 11.0 범위의 난수가 반환됩니다. -- 0 <= x < 10 범위의 정수 -- "SELECT trunc(random() * 11);" 1백만번의 실행 시 최소값과 최대값 확인하기 -- Query SELECT min(random), max(random) FROM ( SELECT trunc(random() * 11) AS random FROM generate_series(1,1000000) ) AS test; -- Result min | max -----+----- 0 | 10 1 ~ 10 사이의 정수 trunc() 제거하면 1.0 <= x < 11.0 범위의 난수가 반환됩니다. -- 1 <= x < 11 범위의 정수 -- "SELECT trunc(random() * 10 + 1);" 1백만번의 실행 시 최소값과 최대값 확인하기 -- Query SELECT min(random), max(random) FROM ( SELECT trunc(random() * 10 + 1) AS random FROM generate_series(1,1000000) ) AS test; -- Result min | max -----+----- 1 | 10 5 ~ 10 사이의 정수 trunc() 제거하면 5.0 <= x < 11.0 범위의 난수가 반환됩니다. -- 5 <…

댓글 쓰기