sql-server - SQL服务器: looping through a subquery and limting result in main query corresponding to evry row in subquery

标签 sql-server subquery

我正在 stackoverflow sqlquery 门户工作。我想要拥有最大帖子数的前 1000 个标签。对于每个标签,需要 60 个以该标签作为标签的帖子的 id。所以我需要遍历所有 100 个标签,并获取与它们链接的前 60 个帖子。请有人帮忙。

她是我的sql语句。

SELECT Top 60 PostId,ok.Id
FROM PostTags as test
INNER JOIN (SELECT TOP 50
Id,Count
FROM Tags
ORDER BY Tags.Count DESC) as ok
ON ok.Id = test.TagId

但它只返回 60 个帖子,但每个顶部标签我需要 60 个帖子。请告诉我如何迭代子查询。

最佳答案

WITH CTEM AS
(
   SELECT TOP 100 T.ID
   FROM Tags T ORDER BY T.[COUNT] DESC
),
CTE as
(
SELECT P.POSTID,T.ID
      ,ROW_NUMBER() OVER(PARTITION BY T.ID ORDER BY P.POSTID DESC) AS RN
FROM PostTags P
        INNER JOIN CTEM T ON P.TAGID = T.ID
)

SELECT * FROM CTE WHERE RN<=60

关于sql-server - SQL服务器: looping through a subquery and limting result in main query corresponding to evry row in subquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32963028/

相关文章:

java - 无法在 Spring Roo 中进行逆向工程 (DBRE)

php - MySQL 将查询合并为一个

MySQL:简单子(monad)查询

mysql - 对分组子查询求和

sql-server - 在将列添加到 SQL 表之前检查该列是否存在,而无需更改每列的表

sql-server - 使用 SQL 删除 XML 文件中的空节点

sql - 查找列上有差异的相似行

sql-server - Max() 函数不返回最大值

python - Sqlalchemy: joinedload + limit

sql - 请勿在分组依据中包含选择列