데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
강동구|상일동|4
강동구|둔촌동|4
Select 구 동 count(*)
Group by 구 동
해서 위와같이 집계되었는데
동일 카운터에서 한 행만 대표로 추출하려고 하는데
Max를 어찌 활용해야할까요
최종 결과는 구와 동이 각각 컬럼 결과로 나와야합니다
구|동|카운터
Max(구 +동) 을 하면 문자열이 붙어버려서 나중 조인할때
잘라야하는데 데이터자릿수가 일정하지 않은지라
딱히 방법이 생각나질 않네요
Comment 1
-
자리비움
2017.08.10 12:21
SELECT GU, DONG, CNTFROM (SELECT GU, DONG, CNT, ROW_NUM = ROW_NUMBER() OVER (PARTITION BY CNT ORDER BY CNT DESC) -- 동일 CNT 기준FROM (SELECT GU, DONG, CNT = COUNT(*)FROM (SELECT GU = '강동구', DONG = '상일동' UNION ALLSELECT GU = '강동구', DONG = '상일동' UNION ALLSELECT GU = '강동구', DONG = '상일동' UNION ALLSELECT GU = '강동구', DONG = '상일동' UNION ALLSELECT GU = '강동구', DONG = '둔촌동' UNION ALLSELECT GU = '강동구', DONG = '둔촌동' UNION ALLSELECT GU = '강동구', DONG = '둔촌동' UNION ALLSELECT GU = '강동구', DONG = '둔촌동' UNION ALLSELECT GU = '구1', DONG = '동1' UNION ALLSELECT GU = '구1', DONG = '동2' UNION ALLSELECT GU = '구1', DONG = '동3' UNION ALLSELECT GU = '구2', DONG = '동1' UNION ALLSELECT GU = '구3', DONG = '동1' UNION ALLSELECT GU = '구3', DONG = '동1') AS AGROUP BY GU, DONG) AS A) AS AWHERE A.ROW_NUM = 1