이전에 데이타 롤링(?) ,순환(?) 관련 질문인데요.결과는 조금 다른 유형입니다... 0 2 145

by 맹꽁이 [SQL Query] Postgresql [2021.07.19 14:12:19]


DB는 PostgreSQL 입니다.

No. content
1 cont1
2 cont2
3 cont3
4 cont4
5 cont5

이전에 질문 드렸던거는 group가 증가시 No. 최대값이 중첩되는거였는데..

 

해당건은 group 이 증가시 No.값이 겹치지 않게 하고 싶습니다.ㅜㅜ

워낙 잘 몰라서 이렇게 해보고 저렇게 해보는데..잘 안되어서....조언 구합니다.ㅜㅜ

group  No.  content
1 1 cont1
1 2 cont2
2 3 cont3
2 4 cont4
3 5 cont5
3 1 cont1
4 2 cont2
4 3 cont3
5 4 cont4
5 5 cont5
6 1 cont1
6 2 cont2

 

 

 

 

 

 

by 마농 [2021.07.19 16:06:35]
-- PostgreSql --
WITH t AS
(
SELECT 1 no, 'cont1' content
UNION ALL SELECT 2, 'cont2'
UNION ALL SELECT 3, 'cont3'
UNION ALL SELECT 4, 'cont4'
UNION ALL SELECT 5, 'cont5'
)
SELECT *
  FROM generate_series(1, 6) grp
 INNER JOIN t
    ON no IN ((grp * 2 - 2) % 5 + 1, (grp * 2 - 1) % 5 + 1)
 ORDER BY grp, CASE WHEN no = (grp * 2 - 2) % 5 + 1 THEN 1 ELSE 2 END
;
-- http://gurubee.net/article/84582

 


by 맹꽁이 [2021.07.19 17:15:32]

마농님..감사합니다.~~^^;

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