有許多種交易紀錄的紀錄方法是放在同一個(log)表內,如何取得該同資料最後的狀態?
範例資料表 taba:
- id 識別碼
- stat 狀態碼
- dt 紀錄時間
- …….. 其他
在MSSQL的解方為
SELECT * into #tba FROM taba WHERE 1=1;
SELECT a.*, b.ct FROM #tba a JOIN (SELECT id, max(dt) mdt, count(*) ct FROM #tba GROUP BY id) b ON a.id=b.id and a.dt=b.mdt;
drop TABLE #tba
在上段程式碼其中的WHERE段要自行套入條件式,在資料量大的情形下,這樣的做法可以讓執行速度更快一點。