데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
안녕하세요.
DB 공부를 하고있는 초보자 입니다.
MSSQL 혹은 MySQL 에서
테이블
Index | Min X | Min Y | Min X | MAX Y |
A | 1 | 2 | 2 | 4 |
B | 2 | 1 | 5 | 2 |
C | 3 | 1 | 4 | 2 |
결과
Index | X | Y |
A | 1 | 2 |
A | 1 | 3 |
A | 1 | 4 |
A | 2 | 2 |
A | 2 | 3 |
A | 2 | 4 |
B | 2 | 1 |
B | 2 | 2 |
B | 3 | 1 |
B | 3 | 2 |
B | 4 | 1 |
B | 4 | 2 |
B | 5 | 1 |
B | 5 | 2 |
C | 3 | 1 |
C | 3 | 2 |
C | 4 | 1 |
C | 4 | 2 |
테이블에 X최소값,Y최소값, X최대값,Y최대값이 있을때
Y최소값을 Y최대값까지 1씩 증가시키고,
Y가 최대값까지 갔을때 X가 1 증가하면서 Y는 최소값으로 초기화되고,
반복하여 X도 최대값까지 도달하면
다음 인덱스로 넘어가는 방식의
테이블 결과를 얻을 수 있는 방법이 있는가 싶어서 질문 드렸습니다.
현재 오라클에서는
SELECT Index, X, Y
FROM 테이블
, (SELECT LEVEL X FROM dual CONNECT BY LEVEL <= ( select max(Max_X) from 테이블)) X
, (SELECT LEVEL Y FROM dual CONNECT BY LEVEL <= ( select max(Max_Y) from 테이블)) Y
WHERE X BETWEEN min_x AND max_x
AND Y BETWEEN min_y AND max_y
ORDER BY Index, X, Y;
이렇게 사용하고 있습니다.
Comment 1
-
항해자™
2016.12.06 16:20
한번 풀어봤습니다,,,