집 >데이터 베이스 >MySQL 튜토리얼 >SQL 테이블에서 각 ID의 최대 신호 값을 찾는 방법은 무엇입니까?
각 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!