首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何对Stack Exchange Data Explorer (SEDE)结果进行分页?

如何对Stack Exchange Data Explorer (SEDE)结果进行分页?
EN

Stack Overflow用户
提问于 2018-08-16 19:54:34
回答 1查看 92关注 0票数 2

使用data explorer创建查询:

代码语言:javascript
运行
AI代码解释
复制
SELECT P.id, creationdate,tags,owneruserid,answercount
--SELECT DISTINCT TAGNAME ,TAGID
FROM TAGS  AS T
JOIN POSTTAGS AS PT
ON T.ID = PT.TAGID
JOIN POSTS AS P
ON PT.POSTID = P.ID
--WHERE CAST(P.TAGS AS VARCHAR) IN('JAVA')
WHERE PT.TAGID = 3143

如何在查询中添加分页,以便不仅获取前50,000个结果,而且再次运行查询以获取下一个剩余的结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-16 21:53:57

有几种方法可以“翻页”TSQL结果;请参阅:

and

这里我将使用CTE方法,如下所示:

  • 它使用方便的行号来对结果进行分页,而不是试图跟踪不可预测的因素,例如据报道,creationdate.
  • It的执行速度比OFFSET方法更快。

因此,该问题的查询变成了this SEDE query

代码语言:javascript
运行
AI代码解释
复制
-- StartRow: Starting row for paging
-- EndRow: Ending row for paging (Max 50K rows at a time)
WITH allData AS (
    SELECT
                ROW_NUMBER() OVER (ORDER BY P.creationdate) AS row
                , P.id
                , P.creationdate
                , P.tags
                , P.owneruserid
                , P.answercount
    FROM        Posttags    AS PT
    JOIN        Posts       AS P    ON PT.postid = P.id
    WHERE       PT.tagid    = 3143  -- tag [scala]
)
SELECT      *
FROM        allData
WHERE       row    >= ##StartRow:INT?1##
AND         row    <= ##EndRow:INT?50000##
ORDER BY    row
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51884419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文