반응형

topn

    mysql 컬럼별 상위 N건 조회하는 방법

    mysql을 사용하고 있는 상황에서 타입별 보유하고 있는 score별 순위 2개까지의 값을 가져오는 쿼리가 필요했다. 예를 들면 강아지 페스티벌에 참여한 강아지들의 스코어 별 상위 3위까지의 강아지를 찾는 쿼리가 필요했다. 그럼 값을 한번 추출해보자. 우선 전제가 되는 테이블은 아래와 같다. # database 생성 create database test character set utf8mb4 collate utf8mb4_general_ci; use test; # 테이블 생성 create table dog_festival ( id int primary key not null auto_increment, dog_type varchar(30), score int ) # 값 추가 insert into dog_f..

    Mysql에서 각 유형별 상위 몇건 데이터 가져오는 방법

    Mysql을 공부하면서 특정 컬럼을 그룹으로 나누고 그 그룹별로 상위 N건의 데이터를 출력하는 방법에 대해 알아보았다. MySQL은 Oracle의 그룹별로 시퀀스 번호를 할당하는 ROW_NUMBER()라는 기능이 제공되지 않아 상위 몇개의 데이터를 추출하기 위해서는 Mysql의 세션 변수를 사용하여 구현할 수 있다. 우선 두 개의 테이블이 존재한다고 가정해보자. 첫 번째 테이블은 사용자 정보를 담고 있는 user 테이블이고 두 번째 테이블은 사용자별 구매정보를 가지고 있는 purchase 테이블이 있다고 가정해보자. user 테이블 purchase 테이블 이 때 사용자 ID가 2보다 큰 사용자들을 대상으로 마지막 구매날짜가 최신인 상위 탑 7개를 추출하는 쿼리를 작성해보자. 결론부터 보여주면 다음과 같다..

반응형