테이블에 아래 자료가 있습니다.
날짜:사용자:최초점수:최종점수:점수차이
-------------------------------------------------------------------------------
20131201 A:홍길동,B:김길동 100 150 50
20131201 A:홍길동 200 400 200
20131201 B:김길동,C:아무개 100 150 50
20131201 B:김길동,D:강해요 100 150 50
------------------------------------------------------------------------------
사용자 필드값을 가져올때는 split 으로 가져와서 사용합니다.
여기서 질문드립니다.
위와 같은 자료가 있을때
사용자 개개인별로 점수차이 합을 가져오고 싶습니다.
ㅠㅠ
이런 문장도 group by 로 가능한지요?
WITH t AS
(
SELECT '20131201' dt, 'A:홍길동,B:김길동' usr, 100 v1, 150 v2, 50 v3 FROM dual
UNION ALL SELECT '20131201', 'A:홍길동' , 200, 400, 200 FROM dual
UNION ALL SELECT '20131201', 'B:김길동,C:아무개', 100, 150, 50 FROM dual
UNION ALL SELECT '20131201', 'B:김길동,D:강해요', 100, 150, 50 FROM dual
)
SELECT REGEXP_SUBSTR(usr, '[^,]+', 1, lv) usr
, SUM(v3) v3
FROM t
, (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 9)
WHERE lv <= REGEXP_COUNT(usr, ',') + 1
GROUP BY REGEXP_SUBSTR(usr, '[^,]+', 1, lv)
;