쿼리 정렬 조언 부탁 드리겠습니다. 0 2 1,154

by 신건식 [SQL Query] 정렬 [2016.10.24 14:39:43]


안녕하세요. 쿼리 작성 도중 어려움이 있어 
이렇게 조언을 구하게 되었습니다. 

SELECT '대한민국' NATION_NM, 'M' WORK_TYPE, '210' "2014", '460' "2015" FROM DUAL UNION ALL
SELECT '대한민국' NATION_NM, 'W' WORK_TYPE, '15' "2014", '44' "2015" FROM DUAL UNION ALL

SELECT '중국' NATION_NM, 'M' WORK_TYPE, '520' "2014", '800' "2015" FROM DUAL UNION ALL
SELECT '중국' NATION_NM, 'W' WORK_TYPE, '31' "2014", '102' "2015" FROM DUAL UNION ALL

SELECT '일본' NATION_NM, 'M' WORK_TYPE, '61' "2014", '237' "2015" FROM DUAL UNION ALL
SELECT '일본' NATION_NM, 'W' WORK_TYPE, '8' "2014", '74' "2015" FROM DUAL UNION ALL

SELECT '총계' NATION_NM, 'M' WORK_TYPE, '1004' "2014", '10004' "2015" FROM DUAL UNION ALL
SELECT '총계' NATION_NM, 'W' WORK_TYPE, '1004' "2014", '10004' "2015" FROM DUAL 

위 데이터를 가지고 아래와 같은 결과를 얻으려고 합니다.

 

NATION_NM WORK_TYPE 2014          2015
--------------------------------------------------------------
총계            W            1004            10004
총계            M            1004            10004
--------------------------------------------------------------
중국            W            31                102
중국            M            520                800
--------------------------------------------------------------
대한민국     W            15                44
대한민국    M            210                460
--------------------------------------------------------------
일본            W            8                    74
일본            M            61                237
--------------------------------------------------------------

총계는 가장 위로 정렬하고, 

그리고 2015년도의 수치가 가장 높은 국가별(작업구분 WORK_TYPE W, M 순)으로

총계 아래로 순서대로 매핑하려고 합니다.

 

정렬을 이래저래 해봐도 수치로 정렬하면 국가 묶음이 깨지고, 

국가로 묶은다음 정렬할래도 국가가 정렬이 우선순위가 되어버리면서 애매해지네요.

 

랭크로 묶어도 보고 했는데, 잘 되지 않아 이렇게 조언을 구합니다.

아무쪼록 많은 선배님들의 조언 부탁 드리겠습니다.

 

감사합니다.

 

by 마농 [2016.10.24 15:00:16]
SELECT *
  FROM t
 ORDER BY SUM("2015") OVER(PARTITION BY nation_nm) DESC
     , nation_nm
     , work_type DESC
;

 


by 신건식 [2016.10.24 15:12:46]

소중한 조언 감사드립니다. 

말씀해주신 대로 하니 아주 간단히 해결되었습니다 ^^

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