테이블이 학생이고 데이터가 다음과 같다고 가정합니다.
MySQL의 Oracle에서 순위() 함수, 즉 그룹 내 정렬을 구현해야 합니다. 구체적으로 다음과 같습니다. 학생 테이블(이름)은 점수에 따라 순위가 매겨집니다.
먼저 새로운 저장 프로시저인 acquire_rank_in_MySQL을 생성합니다. 코드는 다음과 같습니다.
DROP PROCEDURE IF EXISTS realize_rank_in_MySQL; DELIMITER ;; CREATE PROCEDURE realize_rank_in_MySQL() BEGIN DECLARE i int; SET i = 0; WHILE i < (select count(DISTINCT course) from student) DO SET @ROW =0; INSERT INTO student_rank SELECT *, (@ROW:=@ROW+1) AS rank FROM student WHERE course=(select DISTINCT course from student limit i,1) ORDER BY score DESC; set i = i + 1; END WHILE; END ;; DELIMITER ;
그런 다음 다음 쿼리 문을 입력합니다.
drop table if exists student_rank; create table student_rank like student; alter table student_rank add rank int; call realize_rank_in_MySQL; select * from student_rank;
결과는 다음과 같습니다.
참고: 여기 순위는 점수가 같으면 같은 순위입니다.
관련 기사:
hive는 표준 SQL을 사용하여 그룹 내 정렬을 구현합니다.
위 내용은 MySQL_그룹 내 정렬 구현 - Oracle의 Rank() 함수 기능의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!