mySQL : 각 그룹의 최대 DateTime이있는 행 선택 이 안내서는 MySQL 테이블의 각 별개의 그룹에 대한 최대 DateTime 값을 포함하는 행을 효율적으로 검색하는 방법을 보여줍니다. 이것은 종종 하위 쿼리 또는 창 함수를 포함하는 일반적인 SQL 챌린지입니다. 시나리오 :
다른 주택에서 플레이어 리소스 사용을 추적하는 테이블을 상상해
비효율적 인 접근 (그리고 그들이 실패한 이유) :
간단한 및 는 가 데이터를 집계하고 와 같은 집계 된 열을 잃어 버리므로 직접 작동하지 않습니다. 하위 쿼리를 사용하여 각 홈에 대한 최대 데이터 시간을 찾은 다음 원래 테이블에 다시 가입하면 종종 잘못되거나 불완전한 결과로 이어집니다.
효과적인 솔루션 : TopTen
<code class="language-sql">CREATE TABLE TopTen ( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, home INT UNSIGNED NOT NULL, datetime DATETIME NOT NULL, player VARCHAR(6) NOT NULL, resource INT NOT NULL );</code>
이 내부 쿼리는 각각의 에 대한 최대 home
를 찾아 .
조인 : 외부 쿼리는 원본 테이블 (datetime 조건은 최종 결과에 player
와 최대 resource
와 일치하는 행만 에 포함되도록합니다.
를 나타내는 행에 대해 반환되도록합니다. 이것은 데이터 손실을 피하고 필요한 완전한 정보를 제공합니다.
위 내용은 MySQL의 각 집에 대한 최대 데이터 타임으로 행을 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!