가능한 중복 :
SQL Query to get latest price효율적인 방법 SQL은 MySQL 데이터베이스에서 최신 항목을 선택합니까?
나는 주가의 역사를 포함하는 데이터베이스가 있습니다. 나열된 모든 주식에 대해 가장 최근의 가격을 선택하고 싶습니다. PostreSQL은 DISTINCT ON 문을 가지고있어 이상적으로 이상적입니다.
테이블 열은 name
, closingPrice
및 date
입니다. name
및 date
이 함께 고유 색인을 구성합니다.
쉬운 (매우 uneffective) 방법은 내가 찾은
SELECT * FROM stockPrices s
WHERE s.date =
(SELECT MAX(date) FROM stockPrices si WHERE si.name = s.name);
훨씬 더 나은 방법이
SELECT *
FROM stockPrices s JOIN (
SELECT name, MAX(date) AS date
FROM stockPrices si
GROUP BY name
) lastEntry ON s.name = lastEntry.name AND s.date = lastEntry.date;
이다 이것은 무엇을 할 수있는 효율적인 방법이 될 것입니다? 어떤 인덱스를 만들어야합니까? 의
검색에 실패했습니다. – skolima