mysql에서 쿼리 출력 방법에 대해 질문드립니다. 0 2 1,113

by Kun [SQL Query] mysql [2022.08.11 13:51:28]


안녕하세요. 현재 데이터를 엑셀형식으로 내려줄 필요가 있어 쿼리를 짜고 있습니다.

그런데 요구사항이 같은 데이터일 경우에 표시가 되지 않게 해달라고 해서 찾고 있는데 제 선에서 해결이 힘들어 문의를 남깁니다..

SELECT A.ID, A.NAME,  B.ETC1, B.ETC2, B.ETC3
FROM CAT A
INNER JOIN TB_ETC B ON A.ID = B.CATID
ID NAME ETC1 ETC2 ETC3
10 CAT1 A A A
10 CAT1 B B B
10 CAT1 C C C
11 CAT5 D D D

위와 같은 결과에서

ID NAME ETC1 ETC2 ETC3
10 CAT1 A A A
    B B B
    C C C
11 CAT2 D D D
    E E E

이런식으로 출력하는 방법이 있을까요?

후처리를 하려고 하니 너무 오래 걸려서 문의남깁니다..!

테이블 관계는 CAT(one to many)ETC 입니다!

 

by 마농 [2022.08.11 14:05:45]
-- ETC 테이블의 정렬 기준이 필요합니다.
-- ORDER BY 1 부분의 1 대신 정렬기준항목 적어주면 됩니다.
SELECT CASE ROW_NUMBER() OVER(PARTITION BY a.id ORDER BY 1) WHEN 1 THEN a.id   END id
     , CASE ROW_NUMBER() OVER(PARTITION BY a.id ORDER BY 1) WHEN 1 THEN a.name END name
     , b.etc1
     , b.etc2
     , b.etc3
  FROM cat a
 INNER JOIN tb_etc b
    ON a.id = b.catid
;

 


by Kun [2022.08.11 14:17:36]

감사합니다! 바로 적용하였습니다 :)

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