집 >데이터 베이스 >MySQL 튜토리얼 >MySQL에서 각 딜러의 가장 낮은 값을 가진 행을 찾는 방법은 무엇입니까?
MySQL에서 각 딜러의 최저 값 얻기
다음 구조의 데이터베이스를 고려하세요.
CREATE TABLE your_table ( id INT NOT NULL, name VARCHAR(255) NOT NULL, value INT NOT NULL, dealer VARCHAR(255) NOT NULL );
목표: 각각에 대해 가장 낮은 값을 가진 행을 검색합니다. 독특한 딜러입니다.
해결책:
해결책 1:
SELECT t1.* FROM your_table t1 JOIN ( SELECT MIN(value) AS min_value, dealer FROM your_table GROUP BY dealer ) AS t2 ON t1.dealer = t2.dealer AND t1.value = t2.min_value;
해결책 2 (권장):
SELECT t1.* FROM your_table t1 LEFT JOIN your_table t2 ON t1.dealer = t2.dealer AND t1.value > t2.value WHERE t2.value IS NULL;
토론:
솔루션 1은 하위 쿼리를 사용하여 각 딜러의 최소값을 찾은 다음 해당 정보를 전체 행 데이터를 수집하기 위한 원본 테이블입니다. 반면에 솔루션 2는 최적화된 왼쪽 조인을 사용하여 동일한 딜러에 대해 더 큰 값을 가진 행을 제거하고 가장 낮은 값을 가진 행만 효과적으로 반환합니다.
MySQL은 이에 대한 문서에서 전용 섹션을 제공합니다. "특정 열의 그룹별 최대/최소값을 보유하는 행"이라는 제목의 자주 발생하는 시나리오입니다. 자세한 내용과 예시는 이 문서를 참조하세요.
위 내용은 MySQL에서 각 딜러의 가장 낮은 값을 가진 행을 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!