我有一个查询,我希望它列出每个股票项目的所有最新交易价格。我试图使用MAX()
列出每个项目的所有最新交易,但不包括价格,并且它有效,但当我包括价格时,该方法将不起作用。
这是我的问题
SELECT MAX(DocDate) AS DocDate, StockCode, Price
FROM StockPurchasePriceHistory spph
INNER JOIN Stocks s
ON spph.Stock = s.Id
GROUP BY StockCode, Price
ORDER BY StockCode ASC
输出
最佳答案
使用行号
select * from (SELECT row_number()over(partition by StockCode order by DocDate desc) rn
, StockCode, Price
FROM StockPurchasePriceHistory spph
INNER JOIN Stocks s
ON spph.Stock = s.Id
) a where a.rn=1