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

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

Linda Hamilton
Linda Hamilton원래의
2025-01-06 12:39:41461검색

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

각 ID에 대한 최대 신호 쿼리

질문:

여러 신호가 있는 테이블이 주어졌습니다. 각 ID와 연관된 값이 있는 경우 각 고유 ID에 대한 최대 신호 값을 검색하기 위해 쿼리를 어떻게 작성할 수 있습니까? 다음 예제 테이블을 고려하십시오.

ID     Signal    Station    OwnerID
111     -120      Home       1
111     -130      Car        1
111     -135      Work       2
222     -98       Home       2
222     -95       Work       1
222     -103      Work       2

답변:

Station 및 OwnerID와 같은 다른 열에 영향을 주지 않고 각 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
)

이 쿼리는 테이블 자체를 조인하여 데카르트 곱을 생성합니다. 각 행 쌍에 대해 두 번째 행(high)의 신호 값이 첫 번째 행(cur)의 신호 값보다 큰지 확인합니다. 동일한 ID에 대해 더 높은 신호 값이 발견되면 현재 행은 제외됩니다.

결과는 각 ID에 대해 최대 신호 값이 있는 행만 포함된 테이블입니다. 예제 테이블의 경우 출력은 다음과 같습니다.

ID    Signal    Station    OwnerID
111   -120      Home        1
222   -95       Work        1

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.