sql-server - 试图在未按顺序包含的列上获得平局结果
问题描述
给定以下结果集,按Date列的降序排序。
我想使用Top
像这样的子句:
select top 4 *
from donation d
order by d.Date desc;
这给了我以下结果:
尽管我将结果限制在前 4 名,但我希望能够包含最后一行,因为它与基于名称的最后一条记录 (id : 5) 相关。
解决方案
此查询首先选择前 4 个日期中的人员姓名(在公用表表达式中),然后使用这些姓名显示他们的所有数据。我想这就是你想要的。
;WITH Top4Names AS
(
SELECT TOP 4 [Name]
FROM donation
ORDER BY [Date] DESC
)
SELECT d.id, d.[Name], d.Amount, d.[Date]
FROM donation d
INNER JOIN Top4Names t
ON t.[Name] = d.[Name]
ORDER BY d.[Date] DESC;
推荐阅读
- android - 我可以从 android studio 在 windows 11 中安装 android 应用程序吗?
- next.js - 在 Vercel 上导入新项目不起作用
- azure-devops - Azure Devops API - 如何按项目名称过滤/搜索?
- javascript - 如何使用 select 或 find 从 BeautifulSoup 访问“父级”?
- android - 如何从片段获取数据到另一个活动?(不是容器活动)
- r - 如何添加一个下载按钮来保存我的绘制数据?
- kubernetes - 无法在 Docker Desktop Kubernetes 下访问本地主机上的应用程序
- css - Safari 上的 Bootstrap 4 Select 不一样
- blazor - BlazorWASM 创建默认用户
- android - 在 android 中使用 SpeechRecognizer 进行吹气检测