gpt4 book ai didi

sql - 通过 report_id 获取 top 'n' 记录

转载 作者:行者123 更新时间:2023-12-04 22:23:41 24 4
gpt4 key购买 nike

我的 MSSQL 数据库中有一个简单的 View 。它由以下字段组成:

report_id INT
ym VARCHAR -- YYYY-MM
keyword VARCHAR(MAX)
visits INT

我可以使用以下查询轻松获得前 10 个关键字命中:

SELECT TOP 10 *
FROM top_keywords
WHERE ym BETWEEN '2010-05' AND '2010-05'
ORDER BY visits DESC

现在变得棘手的是,我必须为给定日期范围内的每个 report_id 获取前 10 条记录(ym BETWEEN @start_date AND @end_date)。

我将如何获得每个 report_id 的前 10 名?我偶然发现了涉及使用 ROW_NUMBER() 和 RANK() 的建议,但在实现过程中非常不成功。

最佳答案

怎么样

SELECT *
FROM (SELECT *,
ROW_NUMBER() OVER(PARTITION BY report_id ORDER BY (SELECT 0)) AS RN
FROM top_keywords
WHERE ym BETWEEN '2010-05' AND '2010-05') TK
WHERE RN <= 10

关于sql - 通过 report_id 获取 top 'n' 记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2946170/

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