SQL에서 날짜별로 가장 최근 기록을 선택하세요.

Sqleseo Naljjabyeollo Gajang Choegeun Gilog Eul Seontaeghaseyo



SQL 데이터베이스에서 작업할 때 날짜를 기준으로 특정 테이블에서 가장 최근 레코드를 검색해야 하는 인스턴스를 발견할 수 있습니다. 이는 페이지 매김, 재고 관리, 모니터링 목적 등을 위해 사용될 수 있습니다.

이 가이드에서는 날짜를 기준으로 테이블에서 가장 최근 기록을 선택하는 데 사용할 수 있는 다양한 방법과 기술을 안내합니다.

샘플 데이터

데모 목적으로 MySQL 및 PostgreSQL 버전에서 사용할 수 있는 Sakila 샘플 데이터베이스를 사용합니다.







서버에서 샘플 데이터베이스를 자유롭게 다운로드하여 가져오세요. 필요에 따라 다른 데이터세트를 사용할 수도 있습니다.



예 1: ORDER BY

날짜별로 최신 레코드를 검색하는 데 사용할 수 있는 가장 기본적이고 간단한 방법은 SQL ORDER BY 절을 사용하는 것입니다.



날짜 값을 기준으로 내림차순으로 레코드를 정렬한 다음 결과를 한 행으로 제한할 수 있습니다.





Sakila 샘플 데이터베이스의 임대 테이블을 예로 들어 보겠습니다. 여기에는 영화를 대여한 날짜를 나타내는 'rental_date' 열이 포함되어 있습니다.

이를 사용하여 ORDER BY 절을 사용하여 테이블에서 가장 최근 레코드를 검색하는 방법을 보여줄 수 있습니다.



선택하다 *

렌탈에서

주문하다 임대_날짜 DESC 기준

한계 1 ;

이 경우 ORDER BY 절을 사용하고 'rental_date'를 대상 열로 전달합니다. 또한 데이터베이스에 레코드를 내림차순으로 정렬하도록 지시합니다.

마지막으로 테이블에서 가장 최근 행을 반환해야 하는 출력 레코드의 수도 제한합니다.

예제 2: Max() 함수 사용

날짜 값에 max() 함수를 사용할 수 있다는 것을 알고 계셨습니까? 예, 간단한 SQL 하위 쿼리와 날짜 값에 대한 max() 함수를 사용하여 특정 테이블에서 가장 최근 레코드를 검색할 수 있습니다.

다음 예를 고려하십시오.

선택하다 *

렌탈에서

WHERE rent_date = (대여에서 MAX(rental_date) 선택);

하위 쿼리를 사용하면 테이블에서 최대 임대 날짜를 찾습니다. 기본 쿼리에서는 'rental_date'가 최대 날짜와 동일한 레코드를 가져와야 합니다.

예제 3: 창 기능

윈도우 함수를 지원하는 데이터베이스의 경우 하위 쿼리와 row_number() 함수를 사용하여 다음과 같이 테이블에서 가장 최근 레코드를 검색할 수 있습니다.

선택하다 *

에서 (

선택하다 *,

ROW_NUMBER() 이상( 주문하다 BY rent_date DESC) AS rn

렌탈에서

) AS 하위 쿼리

어디에서 rn = 1 ;

주어진 예에서 하위 쿼리는 ROW_NUMBER() 창 함수를 사용하여 'rental_date' 열을 기준으로 각 행에 행 번호를 내림차순으로 할당합니다.

그런 다음 외부 쿼리는 행 번호가 1인 하위 쿼리에서 모든 열을 선택하여 가장 최근의 임대 기록을 효과적으로 선택합니다.

결론

이 게시물에서는 날짜를 기준으로 가장 최근의 기록을 가져오는 데 사용할 수 있는 다양한 방법과 기술을 살펴보았습니다.