[mysql] ROW_NUMBER() OVER() 0 1 2,329

by 후룰쭈쭈빠레로 [MySQL] ROW_NUMBER [2017.05.24 11:44:02]


결과1.JPG (18,676Bytes)

buld_04테이블에 시군구 데이터가 있습니다. 거기에 로우수에 맞게 카운팅을 하고 시군구 증가량에 따른 시퀀스 번허넣기 두가지를 넣으려고 합니다. 

그래서 

SELECT sig_cd as 시군구코드,  @SEQ := @SEQ+1 AS num 
FROM buld_04, (SELECT @SEQ := 0) A;

를 실행해서 결과 1과 같이 구했습니다. 

마지막으로 시군구 증가량에 따른 시퀀스를 넣으려고하는데

SELECT sig_cd as 시군구코드,  @SEQ := @SEQ+1 AS num, 
ROW_NUMBER() OVER(PARTITION BY sig_cd ORDER BY sig_cd) AS seq FROM buld_04, (SELECT @SEQ := 0) A;

이렇게 넣었는데 잘 안되더라고요.

이럴때는 어떻게 해야하는지 궁금합니다. 부탁 드립니다. 

by 마농 [2017.05.24 13:33:27]
SELECT gb1
     , gb2
     , @seq := @seq + 1 AS seq
     , @rn  := CASE @gb1 WHEN gb1 THEN @rn + 1 ELSE 1 END AS rn
     , @gb1 := gb1
  FROM (SELECT '서울시' gb1, '도봉구' gb2
        UNION ALL SELECT '서울시', '강남구'
        UNION ALL SELECT '인천시', '연수구'
        UNION ALL SELECT '인천시', '남동구'
        ) a
     , (SELECT @gb1 := ''
             , @seq := 0
             , @rn  := 0
        ) b
 ORDER BY gb1, gb2
;

 

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