【发布时间】:2018-06-14 15:22:12
【问题描述】:
我有以下 SQL 表:
Name Description Id UserId CreatedDate
UserSet1 Desc1 1 Abc 06/01/2018
UserSet1 Desc2 2 Def 06/02/2018
UserSet2 Desc for 2 5 NewUser 06/04/2018
UserSet2 Desc for 2 7 NewUser 06/19/2018
我想从上表中提取的只是每个 Name 的最新 Id,以便我可以得到以下输出
Name Description Id UserId CreatedDate
UserSet1 Desc2 2 Def 06/01/2018
UserSet2 Desc for 2 7 NewUser 06/19/2018
由于 Id 2 和 7 是表中 UserSet1 和 UserSet2 的最新条目,我想显示它而不是表中的所有条目。
我怎样才能得到想要的结果。
我对直接返回输出的解决方案或任何 linq (C#) 解决方案持开放态度。即返回整个数据集,然后使用 linq 过滤上述内容。
【问题讨论】:
-
可以使用窗口函数。
-
如果你可以访问 SQL,你可以 GROUP BY
Name和 SELECT TOP 1Id -
SQL 的版本和风格是什么?
-
我实际上使用的是 AWS 的 Dynamo DB。抱歉,这是我第一次使用 dynamo db。既然我认为它是一个无 sql 数据库,那么只有在我们从数据库中获取全部结果后才能过滤掉代码中的结果。
-
DynamoDB 是否允许您使用
SELECT未包含在GROUP BY中的列?
标签: c# sql linq amazon-dynamodb