SQL查询显示最新的不同数据

问题描述 投票:0回答:1

我正在尝试建立一个Sql查询,以仅恢复表的最年轻记录(它已经有一个Timestamp列),其中要过滤的项目出现了几次,如我的表示例所示:

“表格示例”

基本上,我有一个带有ID,Millis,fkName和Price的table1,以及一个带有ID和Name的table2

table1中,具有相同fkName的项可以出现多次。

[我需要实现的是建立一个查询,在这里我可以列出每个fkName的最后一条记录,这样我就可以获得每个项目的最实际价格。

到目前为止,我尝试过的是带有]的查询>

SELECT DISTINCT [table1].[Millis],[table2].[Name],[table1].[Price]
FROM [table1]
JOIN [table2] ON [table2].[Id] = [table1].[fkName]
ORDER BY [table2].[Name]

但是我没有得到正确的清单。有什么建议吗?预先感谢,

我正在尝试建立一个Sql查询以仅恢复表的最年轻记录(它已经有一个Timestamp列),我要过滤的项目出现了几次,如我的...所示>

sql join greatest-n-per-group
1个回答
1
投票

解决这个每组最多n个问题的简单且可移植的方法是使用子查询进行过滤:

select t1.millis, t2.name, t1.price
from table1 t1
inner join table2 t2 on t2.id = t1.fkName
where t1.millis = (select max(t11.millis) from table1 t11 where t11.fkName = t1.fkName)
order by t1.millis desc
© www.soinside.com 2019 - 2024. All rights reserved.