SQL Rank update 관련 질문입니다 0 3 2,115

by 다어려워 [SQL Query] update rank 통계 [2019.09.20 12:43:45]


학생 이름 / 과목 / 점수 / 등수

A / 영어 / 90 / 1

B / 영어 / 70 / 3

C / 영어 / 80 / 2

D / 영어 / 65 / 4

 

이러한 데이터가 있을 때 E / 영어 / 85 / null 데이터가 들어가면 자동으로

A / 영어 / 90 / 1

B / 영어 / 70 / 4

C / 영어 / 80 / 3

D / 영어 / 65 / 5

E / 영어 / 85 / 2

이런식으로 수정하게끔 update문을 사용하고 싶습니다. 어떻게 해야할까요?

 

p.s Oracle이 아닌 Mysql 입니다

by 우리집아찌 [2019.09.20 13:08:01]

update 문을 쓰지마시고 select 할때 순위를 구하세요.

아래의 함수들을 상황에 맞춰 쓰시면 됩니다.

row_number() over()

rank() over()

dense_rank() over()


by 다어려워 [2019.09.20 13:34:43]

생각해보니 mysql이라고 안 적었네요. ㅠㅠ 답변 감사합니다


by 마농 [2019.09.20 15:51:31]

순위는 저장하고 갱신하기 보다는. 조회할 때 로직으로 처리하는게 좋습니다.
MySQL 도 최신 버전에는 rank 기능 사용 가능하구요.
예전 버전이라면? 다음 퀴즈 게시글 참조하세요.
http://gurubee.net/lecture/2192

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