[MySQL] RANK() 로 구현하는 순위 계산

개발/MySQL 2023. 6. 27. 00:26

View 테이블을 사용하여 현재 특정 데이터들에 대한 순위를 계산해야하는 경우가 있었다. MySQL의 경우에는 RANK() 함수가 5.7버전부터 추가되어 특정 칼럼에 대해 값의 순위를 계산할 때 사용할 수 있다. RANK() 함수 사용 예시 사용시 문법은 다음과 같다. RANK() OVER (PARTITION BY [구분하려는 칼럼명] ORDER BY [정렬하려는 칼럼명] DESC/ASC) 해당 함수 사용시 PARTITION BY와 DESC/ASC는 생략이 가능하다. PARTION BY PARTITION BY는 특정 동일한 제약이 걸린 데이터 끼리의 순위를 얻고 싶을 때 사용가능하다. 예를 들어 근무 시간 테이블에서 지점명 A에 소속된 직원들의 근무 시간에 대해서만 순위를 얻고 싶다면 PARTITION ..

Article Thumbnail
AWS RDS MySQL 마이그레이션 체크 사항

개발/MySQL 2022. 8. 25. 08:20

AWS Aurora RDS MySQL에서 AWS MySQL 8.0으로 마이그레이션을 진행 후, save 메소드를 사용하는 api를 호출할 때, TypeORM에서 id 값 관련된 쿼리 error가 발생하였다. TypeORMError: Cannot update entity because entity id is not set in the entity. 해당 에러가 발생하는 부분의 쿼리를 로깅해보면 정상적으로 쿼리가 생성되지만, 타겟 entity의 id가 entity에 세팅되지 않았다는 에러는 발생되므로 ORM이 아닌 DB가 이슈일 가능성이 있었다. INSERT INTO "tableName"("id", "createdAt", "updatedAt", "body") VALUES (DEFAULT, DEFAULT, D..

Article Thumbnail