>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 각 딜러의 가장 낮은 값을 가진 행을 효율적으로 검색하는 방법은 무엇입니까?

MySQL에서 각 딜러의 가장 낮은 값을 가진 행을 효율적으로 검색하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-28 09:13:11692검색

How to Efficiently Retrieve Rows with the Lowest Value for Each Dealer in MySQL?

MySQL을 사용하여 여러 딜러에 대한 가장 낮은 값의 행 검색

id, 이름, 값 및 딜러를 포함하는 열이 있는 데이터베이스에서 각 개별 딜러에 대해 가장 낮은 값을 가진 행을 검색하는 것을 목표로 합니다. MIN() 및 GROUP BY를 시도하는 동안 해결 방법을 찾지 못했습니다.

권장 해결 방법:

해결 방법 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는 셀프 조인을 활용하여 각 딜러에 대해 가장 낮은 값을 가진 행을 효율적으로 찾습니다. LEFT JOIN을 사용하여 더 낮은 값의 행이 있는지 확인합니다. 그렇지 않은 경우 해당 딜러의 최저 가격입니다.

추가 정보:

이것은 일반적으로 발생하는 MySQL 문제입니다. 자세한 내용은 "특정 열의 그룹별 최대/최소값을 유지하는 행" 문서를 참조하세요.

위 내용은 MySQL에서 각 딜러의 가장 낮은 값을 가진 행을 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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