오라클

로또 생성 쿼리

사라링 2017. 2. 3. 17:12

SELECT A.GAME

        ,SUM (DECODE (RNUM, 1, LTNO, 0)) NUM1

        ,SUM (DECODE (RNUM, 2, LTNO, 0)) NUM2

        ,SUM (DECODE (RNUM, 3, LTNO, 0)) NUM3

        ,SUM (DECODE (RNUM, 4, LTNO, 0)) NUM4

        ,SUM (DECODE (RNUM, 5, LTNO, 0)) NUM5

        ,SUM (DECODE (RNUM, 6, LTNO, 0)) NUM6

    FROM (SELECT GAME

                ,LTNO

                ,RANK () OVER (PARTITION BY GAME ORDER BY DBMS_RANDOM.VALUE)

                    RNUM

            FROM (    SELECT CEIL (LEVEL / 45) GAME, MOD (LEVEL - 1, 45) + 1 LTNO

                        FROM DUAL

                  CONNECT BY LEVEL <= 9999

                    ORDER BY 1, DBMS_RANDOM.VALUE)) A

        ,(    SELECT LEVEL GAME

                FROM DUAL

          CONNECT BY LEVEL < 6) B 

   WHERE A.GAME = B.GAME

GROUP BY A.GAME

ORDER BY A.GAME