집 >데이터 베이스 >MySQL 튜토리얼 >데이터베이스에서 각 증권의 최신 위치를 효율적으로 찾는 방법은 무엇입니까?
그룹별 최대
목적은 그룹 내 각 고유 증권에 대해 ID와 해당 구매 날짜로 식별되는 최신 포지션을 검색하는 것입니다. 주어진 데이터 세트.
다음 테이블 위치를 고려하세요.
id | security | buy_date |
26 | PCS | 2012-02-08 |
27 | PCS | 2013-01-19 |
28 | RDN | 2012-04-17 |
29 | RDN | 2012-05-19 |
30 | RDN | 2012-08-18 |
31 | RDN | 2012-09-19 |
32 | HK | 2012-09-25 |
33 | HK | 2012-11-13 |
34 | HK | 2013-01-19 |
35 | SGI | 2013-01-17 |
36 | SGI | 2013-02-16 |
18084 | KERX | 2013-02-20 |
18249 | KERX | 0000-00-00 |
원하는 결과를 검색하는 최적화된 쿼리는 다음과 같습니다.
SELECT p1.id, p1.security, p1.buy_date FROM positions p1 LEFT JOIN positions p2 ON p1.security = p2.security AND p1.buy_date <p>이 쿼리는 하위 쿼리를 사용하지 않으므로 특히 대규모 쿼리의 경우 실행 시간을 크게 줄일 수 있습니다. </p><p>결과는 다음 구조의 테이블입니다.</p>
id | security | buy_date |
27 | PCS | 2013-01-19 |
31 | RDN | 2012-09-19 |
34 | HK | 2013-01-19 |
36 | SGI | 2013-02-16 |
18084 | KERX | 2013-02-20 |
각 행은 고유한 증권의 최신 위치를 나타냅니다. ID와 구매일자를 기준으로 합니다.
위 내용은 데이터베이스에서 각 증권의 최신 위치를 효율적으로 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!