在 SQL 中查找日期的最后 3 个不同的事物顺序

Posted

技术标签:

【中文标题】在 SQL 中查找日期的最后 3 个不同的事物顺序【英文标题】:find the last 3 different thing order on date in SQL 【发布时间】:2021-04-16 10:32:17 【问题描述】:

我想在我的桌子上找到按日期排列的最后 3 个人,但我不知道该怎么写 这是我的示例代码:

SELECT TOP 3 ActionDate
FROM ActivityTable
GROUP BY ActorCode
ORDER BY ActionDate DESC
ActionDate ActorCode
2020-02-01 963
2020-01-01 963
2019-12-12 256
2019-12-30 256

输出:

ActionDate ActorCode
2020-02-01 963
2019-12-30 256

【问题讨论】:

请提供样本数据和期望的结果。您的查询似乎符合您的要求。 你认为这是一个简单的登录活动表 。 .我真的不知道所说的“简单登录活动表”是什么意思。 @SaraMoradi 请描述您在选择中想要的输出,以及一些示例数据。我猜每个 ActorCode 都有多个 ActionDate 并且您只想要按 max(ActionDate) 排序的前 3 个 ActorCode ? 你的预期输出是什么? 【参考方案1】:

如果你想要人,为什么要选择日期?我怀疑你可能想要最后三个ActorCode。如果是这样,请使用聚合:

SELECT TOP (3) ActorCode
FROM ActivityTable a
GROUP BY ActorCode
ORDER BY MAX(ActionDate) DESC

【讨论】:

前面的SELECT为什么不能写其他列?它给了我一个错误!

以上是关于在 SQL 中查找日期的最后 3 个不同的事物顺序的主要内容,如果未能解决你的问题,请参考以下文章

在SQL Server表查询中查找不同的用户

SQL 查询以查找给定日期之前的最后一次更改

用于查找下一个欧洲夏令时日期的 SQL Server

SQL Server:查找学生在自定义日期内的连续缺勤计数

SQL select同一张表,两个不同的顺序

SQL Server如何查找季度、半年和当年的最后一天?