sql 질문이요ㅠㅠ 0 2 531

by jjamong [SQL Query] [2021.06.21 11:53:03]


쿼리 초보입니다 ㅠㅠ 아무리 생각해도 답이안나오고 검색도 뭐라고 해야할지 모르겠어서 질문드립니다 ㅠㅠ

group_id    member_id    member_class
  1                   4                  A
  1                   5                  B
  1                   6                  C
  2                  7                   A
  2                  8                   B
  2                  9                   C

이렇게 생긴 테이블을 group_id 별로 조회하는데 member_class에 따라 컬럼 형태로 만들고 싶습니다

group_id     A_id   B_id   C_id
  1                 4        5       6
  2                 7        8       9 

이런 형태로 조회하려면 어떤 식으로 쿼리를 짜는게 좋을까요?ㅜㅜ

by pajama [2021.06.21 12:22:32]

오라클이시면 피벗으로 될것 같은데.. 자주 안써서 그런지 쓸데마다 헷갈리네요..^^;

with t (group_id, member_id, member_class) as (
select 1, 4, 'A' from dual union all
select 1, 5, 'B' from dual union all
select 1, 6, 'C' from dual union all
select 2, 7, 'A' from dual union all
select 2, 8, 'B' from dual union all
select 2, 9, 'C' from dual
)
select * from t
pivot (min(member_id) for member_class in ('A' as A_id ,'B' as B_id,'C' as C_id))

 


by 마농 [2021.06.22 10:27:30]
SELECT *
  FROM t
 PIVOT (MIN(member_id) id FOR member_class IN ('A' a, 'B' b, 'C' c))
;

 

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