> 데이터 베이스 > MySQL 튜토리얼 > 데이터베이스에서 고유한 키 값에 대해 가장 최근 타임스탬프가 지정된 행을 효율적으로 검색하는 방법은 무엇입니까?

데이터베이스에서 고유한 키 값에 대해 가장 최근 타임스탬프가 지정된 행을 효율적으로 검색하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-25 01:17:11
원래의
195명이 탐색했습니다.

How to Efficiently Retrieve the Most Recent Timestamped Rows for Distinct Key Values in a Database?

고유 키 값에 대해 가장 최근 타임스탬프가 있는 행 검색

데이터베이스 컨텍스트에서 각 고유 키에 대해 가장 최근 타임스탬프가 있는 행 선택 가치는 일반적인 요구사항이 될 수 있습니다. 문제를 살펴보고 포괄적인 솔루션을 제공하겠습니다.

sensorID별로 그룹화하고 최대 타임스탬프별로 정렬하는 초기 접근 방식은 SELECT 절에 포함된 집계되지 않은 필드도 SELECT 절에 포함되어야 한다는 요구 사항으로 인해 실패했습니다. GROUP BY 절. 이 문제를 해결하기 위해 실행 가능한 두 가지 솔루션이 있습니다.

솔루션 1:

SELECT sensorID, MAX(timestamp), sensorField1, sensorField2
FROM sensorTable
GROUP BY sensorID
ORDER BY sensorID;
로그인 후 복사

이 방법은 행을 센서 ID별로 그룹화하고 타임스탬프를 집계하여 최대값을 찾습니다. . 다른 필드는 집계 없이 SELECT 절에 포함되어 각 센서의 최신 데이터를 검색할 수 있습니다.

해결책 2:

SELECT s1.sensorID, s1.timestamp, s1.sensorField1, s1.sensorField2
FROM sensorTable s1
WHERE s1.timestamp = (SELECT MAX(timestamp) FROM sensorTable s2 WHERE s1.sensorID = s2.sensorID)
ORDER BY s1.sensorID, s1.timestamp;
로그인 후 복사

이 솔루션은 하위 쿼리를 사용하여 각 센서의 최대 타임스탬프를 찾은 다음 기본 쿼리에서 해당 정보를 참조하여 가장 최근 행을 선택합니다. 타임스탬프가 아닌 필드에 집계 함수가 필요하지 않습니다.

두 솔루션 모두 고유한 키 값에 대해 가장 최근의 타임스탬프 행을 검색하는 문제를 효과적으로 해결합니다. 둘 사이의 선택은 데이터베이스 성능 및 애플리케이션의 특정 요구 사항과 같은 요소에 따라 달라집니다.

위 내용은 데이터베이스에서 고유한 키 값에 대해 가장 최근 타임스탬프가 지정된 행을 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿