해당 csv 파일을 mysql에 올렸습니다.
해당 파일의 row가 1억건 정도 됩니다.
CRDNO_ENC 기준으로, GONC_DTTI (X)가 출발 시간. GONC_STTN_ID (Y) 가 출발 지점
GOFC_DTTI (Z) 가 도착 시간, GOFC_STTN_ID (M) 가 도착 지점 입니다.
문제는 승차할 때는 카드를 태깅해서 X,Y는 찍히는데 (값이 들어오는데), 도착할 때는 환승하지 않는 이상 카드를 태깅하지 않아 Z,M은 NULL로 들어옵니다.
그러나 하루를 추적해서 보면, 다시 CRDNO_ENC를 기준으로 Z,M이 찍히고 다시 X,Y가 NULL로 들어와서 저는 이것을 그룹으로 묶어서 보려고하는데
아무리 짜도 정답이 나오지 않아, 이럴 경우 어떻게 쿼리를 작성하면 좋을 지 문의 드려 봅니다...!
제가 원하는 값은
CRDNO_ENC, GONC_DTTI, GONC_STTN_ID, GOFC_DTTI, GOFC_STTN_ID 가 꽉찬 형태의 쿼리 결과 값입니다..!
고수님들의 여러 조언 부탁 드립니다!
이런 형태를 의미하시는건가요??
WITH dataTbl AS ( SELECT 'Sqrprncc1nh1fg==' AS CRDNO_ENC, '20190120181038' AS GONC_DTTI , '3102385' AS GONC_STTN_ID, NULL AS GOFC_DTTI, NULL AS GOFC_STTN_ID UNION ALL SELECT 'gpNIcHs/8zHDXQ==' AS CRDNO_ENC, '20190112040529' AS GONC_DTTI , '3100135' AS GONC_STTN_ID, NULL AS GOFC_DTTI, NULL AS GOFC_STTN_ID UNION ALL SELECT 'gpNIcHs/8zHDXQ==' AS CRDNO_ENC, NULL AS GONC_DTTI , NULL AS GONC_STTN_ID, '20190112040999' AS GOFC_DTTI, '3100135' AS GOFC_STTN_ID UNION ALL SELECT 'YZu5NjNphQK31w==' AS CRDNO_ENC, '20190109125008' AS GONC_DTTI , '3100931' AS GONC_STTN_ID, NULL AS GOFC_DTTI, NULL AS GOFC_STTN_ID UNION ALL SELECT 'YZu5NjNphQK31w==' AS CRDNO_ENC, NULL AS GONC_DTTI , NULL AS GONC_STTN_ID, '20190109225008' AS GOFC_DTTI, '3100931' AS GOFC_STTN_ID UNION ALL SELECT '9lu3l9JdsdyOyA==' AS CRDNO_ENC, '20190127083323' AS GONC_DTTI , '3102284' AS GONC_STTN_ID, NULL AS GOFC_DTTI, NULL AS GOFC_STTN_ID UNION ALL SELECT 'yIvly3yRr8J8jA==' AS CRDNO_ENC, '20190115185916' AS GONC_DTTI , '3102385' AS GONC_STTN_ID, NULL AS GOFC_DTTI, NULL AS GOFC_STTN_ID ) SELECT CRDNO_ENC ,MAX(IFNULL(GONC_DTTI,'')) AS GONC_DTTI ,MAX(IFNULL(GONC_STTN_ID,'')) AS GONC_STTN_ID ,MAX(IFNULL(GOFC_DTTI,'')) AS GOFC_DTTI ,MAX(IFNULL(GOFC_STTN_ID,'')) AS GOFC_STTN_ID FROM dataTbl GROUP BY CRDNO_ENC