group by 중 다중행을 묶어서 가장 많이 들어온 값만 출력 할 수 있는 방법이 있을까요? 0 2 794

by 듀리 [SQL Query] group by [2021.05.02 16:15:21]


안녕하세요 

막 공부 시작한 직장인 입니다.

group by lon,lat 중 a,b,c행을 묶어서 가장 많이 들어온 값만 출력 할 수 있는 방법이 있을까요?

하나만 행이면 count를 해서 max로 출력이 가능한거 같은데 행이 여러개가 되니 도저히 방법을 모르겠네요

a b c lon lat
2871 37 10 126.9757 37.56945
19868 0 27 126.9757 37.56927
275 47 11 126.9757 37.56927
2871 37 10 126.9757 37.56927
275 37 11 126.9757 37.56927
275 37 11 126.9757 37.56927
2871 27 36 126.9759 37.56945
275 7 11 126.9759 37.56927
275 11 17 126.9759 37.56927
263 4 6 126.9759 37.56927
275 31 17 126.9759 37.56927
385 5 7 126.9759 37.56927
263 4 6 126.9759 37.56927
263 4 6 126.9759 37.56927
385 35 7 126.9759 37.56927
275 37 11 126.9759 37.56927
2871 37 10 126.9762 37.56945
275 37 11 126.9762 37.56927
2871 37 10 126.9762 37.56927
1920 7 19 126.9762 37.56927
275 37 11 126.9764 37.56945
385 35 7 126.9764 37.56927

 

 

by 마농 [2021.05.03 07:57:47]

원하시는 결과표를 보여주세요.


by 듀리 [2021.05.03 14:06:39]

제가 잘 몰라서 질문을 이상하게 했나보네요 

짱구님 글에 답변 주신

SELECT seq, a, b, c

  FROM (SELECT seq, a, b, c

             , COUNT(*) OVER(PARTITION BY a, rn) cnt

          FROM (SELECT seq, a, b, c

                     , ROW_NUMBER() OVER(PARTITION BY a, b, c ORDER BY seq) rn

이걸 이용해서 해결 하긴했습니다. 

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