> 데이터 베이스 > MySQL 튜토리얼 > 테이블에서 각 고유 ID의 최대 신호 값을 찾는 방법은 무엇입니까?

테이블에서 각 고유 ID의 최대 신호 값을 찾는 방법은 무엇입니까?

DDD
풀어 주다: 2025-01-06 12:38:41
원래의
338명이 탐색했습니다.

How to Find the Maximum Signal Value for Each Unique ID in a Table?

고유 ID에 대한 최대 신호 값 결정

제공된 테이블에는 동일한 ID에 대한 여러 신호 녹음이 포함되어 있으므로 가장 높은 신호 값을 검색해야 합니다. 각 ID의 신호값입니다. MAX() 함수만 사용하면 모든 레코드를 집계하여 Station 및 OwnerID 열에 영향을 주기 때문에 문제가 될 수 있습니다.

Self Join 및 Exclusion을 사용한 쿼리 솔루션

To 각 ID의 가장 높은 신호 값을 분리하려면 자체 조인 접근 방식을 고려하세요. 이 기술에는 테이블 자체를 조인하여 비교 및 ​​필터링이 가능합니다.

다음 쿼리는 이 접근 방식을 활용합니다.

select cur.id, cur.signal, cur.station, cur.ownerid
from yourtable cur
where not exists (
    select * 
    from yourtable high 
    where high.id = cur.id 
    and high.signal > cur.signal
)
로그인 후 복사

이 쿼리는 다음과 같이 작동합니다.

  • cur 별칭은 평가 중인 현재 행을 나타냅니다.
  • 중첩된 SELECT 문은 더 높은 값이 있는지 확인하는 하위 쿼리 역할을 합니다. 동일한 ID에 대한 신호 값이 존재합니다.
  • 더 높은 값이 없으면 결과 집합의 현재 행을 포함하여 NOT EXISTS 조건이 true를 반환합니다.

의 출력 이 쿼리에는 연결된 신호 값이 가장 높은 각 ID에 대한 단일 행이 포함됩니다. 이 접근 방식은 동일한 ID에 대해 서로 다른 스테이션과 소유자 ID를 집계하는 문제를 효과적으로 해결합니다.

위 내용은 테이블에서 각 고유 ID의 최대 신호 값을 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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