SID (거래처 아이디)
MID (원자재 아이디)
원자재 아이디는 거래처 아이디에 종속적입니다
SID1 MID1
SID1 MID2
SID1 MID3
SID2 MID4
SID2 MID5
SID3 MID6
SID3 MID7
이런식으로 데이터가 저장돼있습니다
이때 데이터를 SID 로 그룹해서 SID1 : MID1, MID2, MID3 // SID2 : MID4, MID5 // SID3 : MID6,MID7
이렇게 분류 하고 싶습니다
그런데 SID로 그룹바이 하면 안되고,,
혹시 아시는분 계신가요
제 생각에 이건 프로시져 느낌으로 일단 SID 를 그룹바이 하고 해당 SID 각각에 대해서 MID를 찾는 방식으로 해야할것같습니다
DB는 postgreSql에서 실행했습니다
원한는결과가 맞는건가요?
with SIDMID (SID,MID) as ( SELECT 'SID1', 'MID1' UNION ALL SELECT 'SID1', 'MID2' UNION ALL SELECT 'SID1', 'MID3' UNION ALL SELECT 'SID2', 'MID4' UNION ALL SELECT 'SID2', 'MID5' UNION ALL SELECT 'SID3', 'MID6' UNION ALL SELECT 'SID3', 'MID7' ) SELECT sid, string_agg(mid,',') FROM SIDMID GROUP BY SID ORDER BY 1 ; --결과 : SID | MID SID1 MID1,MID2,MID3 SID2 MID4,MID5 SID3 MID6,MID7
SELECT SID, LISTAGG (MID, ',') WITHIN GROUP (ORDER BY MID) MID_LIS
FROM (SELECT 'SID1' AS SID, 'MID1' AS MID FROM DUAL
UNION ALL
SELECT 'SID1' AS SID, 'MID2' AS MID FROM DUAL
UNION ALL
SELECT 'SID1' AS SID, 'MID3' AS MID FROM DUAL
UNION ALL
SELECT 'SID2' AS SID, 'MID4' AS MID FROM DUAL
UNION ALL
SELECT 'SID2' AS SID, 'MID5' AS MID FROM DUAL
UNION ALL
SELECT 'SID3' AS SID, 'MID6' AS MID FROM DUAL
UNION ALL
SELECT 'SID3' AS SID, 'MID7' AS MID FROM DUAL)
GROUP BY SID