我有一張表,看起來像這樣,我想獲得每個loc_id的最新insp_date的ID(insp_id)。MySQL選擇最新日期 - 單表
create table insp (
insp_id int (10),
loc_id int (11),
insp_type varchar (150),
insp_date date ,
insp_active tinyint (2),
insp_created timestamp ,
insp_modified timestamp
);
我嘗試了「IN」的策略,從Select latest record in table (datetime field)等,而這給了我雙倍因爲一個loc_id最新的日期可能會比非最新另一:
SELECT insp_id, loc_id, insp_active, insp_date
FROM insp
WHERE insp_active = 1
AND insp_date IN(SELECT MAX(insp_date) FROM insp WHERE insp_active = 1 GROUP BY loc_id)
ORDER BY loc_id ASC, insp_date DESC;
我安裝一個SQL小提琴,但添加各種GROUP BY和MAX似乎並沒有得到它。我覺得我需要加入一個子查詢或類似的東西,但在這一點上我不確定。
http://sqlfiddle.com/#!2/f95e0/1
感謝, 安德魯
根據記錄,類似的事情在這裏提出:http://stackoverflow.com/questions/7745609/sql-select-only-rows-with-max-value-on-a-column – ptrk 2014-12-05 21:53:21