경우의 수 질문 드립니다. 0 3 837

by 김선우 [SQL Query] 경우의 수 Postgresql [2019.01.16 16:45:45]


경우의 수를 구하고자 합니다.

0-9까지의 숫자만을 가지고 자릿수를 지정해서 경우의 수를 아래와 같이 구하고자 하는데요

2자리 의 경우의 수라고 한다면

00,01,02,03,04,05,06,07,08,09

10,11,12,13,14,15,16,17,18,19

-----------생략-----------

90,91,92,93,94,95,96,97,98,99

상기 와 같이 구하자고 합니다.

 

DB는 Postgresql입니다.

그런데 만약 20자리 숫자를 구하고자 한다면 성능상 괜찮을 까요?

감사합니다.

 

by 마농 [2019.01.16 17:35:07]
WITH RECURSIVE t1 AS
(
SELECT 0 v
 UNION ALL
SELECT v + 1
  FROM t1
 WHERE v < POWER(10, 2)
)
SELECT v
     , LPAD(v::VARCHAR, 2, '0') x
  FROM t1
;
-- 결과 소요 시간 --
1 : 200 msec 미만
2 : 200 msec 미만
3 : 200 msec 미만
4 : 200 msec 미만
5 : 600 msec 미만
6 :   4 sec
7 :  40 sec
8 : ??? sec 계속 도는 중

 


by 마농 [2019.01.18 08:50:14]
SELECT v FROM generate_series(0,    99999) v    --  0.3 Sec
SELECT v FROM generate_series(0,   999999) v    --  1.5 Sec
SELECT v FROM generate_series(0,  9999999) v    -- 13.5 Sec
SELECT v FROM generate_series(0, 99999999) v    -- out of memory

 


by 김선우 [2019.01.21 19:22:00]

마농님 대단히 감사합니다.

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입