gpt4 book ai didi

sql-server - T-SQL : Get top n records by column

转载 作者:行者123 更新时间:2023-12-04 02:11:37 25 4
gpt4 key购买 nike

努力解决一个可能非常简单的问题。我有这样的查询:

 ;WITH rankedData
AS ( -- a big, complex subquery)
SELECT UserId,
AttributeId,
ItemId
FROM rankedData
WHERE rank = 1
ORDER BY datEventDate DESC

子查询旨在抓取大量内联数据并按 itemId 和日期对其进行排名,因此上述查询中的 rank=1 可确保我们仅获取按日期排序的唯一 ItemId。分区是:

Rank() OVER (partition BY ItemId ORDER BY datEventDate DESC) AS rk

问题是我想要的是每个 UserID 的前 75 条记录,按日期排序。鉴于我的子查询中已经有一个等级来按日期对项目重复项进行排序,我看不到执行此操作的直接方法。

干杯,马特

最佳答案

我认为你的查询应该是这样的

SELECT t.UserId, t.AttributeId, t.ItemId
FROM (
SELECT UserId, AttributeId, ItemId, rowid = ROW_NUMBER() OVER (
PARTITION BY UserId ORDER BY datEventDate
)
FROM rankedData
) t
WHERE t.rowid <= 75

关于sql-server - T-SQL : Get top n records by column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16668234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com