"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Oracle SQL의 타임 스탬프를 기반으로 각 그룹의 최신 값을 얻는 방법은 무엇입니까?

Oracle SQL의 타임 스탬프를 기반으로 각 그룹의 최신 값을 얻는 방법은 무엇입니까?

2025-04-13에 게시되었습니다
검색:270

How to Retrieve the Latest Value for Each Group Based on Timestamp in Oracle SQL?

Oracle SQL에서 각 그룹에 대한 최신 항목 추출

이 튜토리얼은 일반적인 데이터베이스 작업을 보여줍니다. 타임 스탬프를 기반으로 각 그룹의 최신 레코드를 검색합니다. 예를 들어 ID, 타임 스탬프 및 수량이 포함 된 테이블을 사용합니다.

도전:

id, timestamp ( "date") 및 수량 ( "수량") 열이있는 테이블이 주어지면 모든 고유 한 ID에 대해 최신 수량 (및 관련 타임 스탬프)을 효율적으로 선택합니까?

해결책:

이것은 다음 접근법을 사용하여 달성 할 수 있습니다.

  1. 순위에 따른 순위 : 각 ID 그룹 내에서 각 행에 순위를 지정합니다.
  2. 최상위 순위 선택 : 결과를 필터링하여 각 ID에 대해 가장 높은 순위의 행만 포함하도록 결과를 필터링합니다. 이 행은 최신 항목을 나타냅니다.
다음의 Oracle SQL 쿼리는이 솔루션을 구현합니다.

SELECT x.id, x."date", x.quantity
FROM (
    SELECT
        id,
        "date",
        RANK() OVER (PARTITION BY id ORDER BY "date" DESC) AS rnk,
        quantity
    FROM qtys
) x
WHERE x.rnk = 1;

쿼리 확장 :

이 기본 쿼리는보다 복잡한 요구를 충족하도록 조정할 수 있습니다.

  • 시간 기반 필터링 : 내부 쿼리에 조항을 특정 기간으로 제한하기 위해
  • 다른 테이블에 가입 : id
  • 열에서 가입하여 추가 테이블의 데이터를 통합합니다. 예를 들어, 출력에 이름을 포함시키기 위해 ID와 이름이 포함 된 테이블에 가입 할 수 있습니다.

이 방법은 다양한 데이터 분석 및 조작 작업에 적용 할 수있는 Oracle SQL의 타임 스탬프를 기반으로 그룹 당 최신 값을 검색하는 강력하고 효율적인 방법을 제공합니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3