Ali*_*n I 1 sql ms-access greatest-n-per-group
我有一张桌子:
ItemID PurchaseDate Price
001 03/17/2013 19.00
002 03/17/2013 14.00
001 03/18/2013 13.00
002 03/18/2013 15.00
001 03/19/2013 17.00
003 03/19/2013 19.00
Run Code Online (Sandbox Code Playgroud)
我需要写一个SQL query获得Price相应的最新PurchaseDate每个ItemID。表中的条目可能不一定按日期输入,如下所示:
ItemID PurchaseDate Price
001 03/19/2013 17.00
002 03/18/2013 15.00
003 03/19/2013 19.00
Run Code Online (Sandbox Code Playgroud)
子查询背后的想法是它分别获取PurchaseDate每个ItemID. 如果子查询的结果在两个条件下匹配,则子查询的结果随后会重新连接到表中:ItemID和PurchaseDate。
SELECT a.*
FROM TableName a
INNER JOIN
(
SELECT ItemID, MAX(PurchaseDate) max_date
FROM TableName
GROUP BY ItemID
) b ON a.ItemID = b.ItemID AND
a.PurchaseDate = b.max_date
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5583 次 |
| 最近记录: |