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 |
-- 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