gpt4 book ai didi

sql - 如何从 SEDE 中提取问题的已接受和最高投票答案?

转载 作者:行者123 更新时间:2023-12-05 06:23:14 26 4
gpt4 key购买 nike

我正在编写查询以从 Stack Overflow 中提取问题和答案 Stack Exchange Data Explorer使用以下查询:

SELECT Top 2 
q.id, q.Title, q.Body q_body, q.parentid qpid, q.AcceptedAnswerId, q.Score q_score, q.AnswerCount, q.Tags, q.viewcount,

answers.parentid aa_pid, answers.id aa_id,
answers.body aa_body, answers.score as aa_score, answers.posttypeid

FROM
Posts answers

INNER JOIN Posts q
ON answers.parentid = q.id

WHERE (answers.id = q.AcceptedAnswerId) AND q.AnswerCount > 2

但是,除了接受的答案,我还想提取投票最多的答案。因为,我什至不明白为什么 answers 不是表格。

最佳答案

Here's我想出的一个查询,你可以实时看到它:

SELECT Id AS [Post Link], Body, Score
FROM (
SELECT TOP 1 Id, Body, Score, DENSE_RANK() OVER(ORDER BY Score DESC) Rank
FROM (
SELECT p.Id, p.ParentId, p.Body, p.Score
FROM Posts p
WHERE p.ParentId = ##QuestionId##
)x
ORDER BY Rank ASC
)x

UNION
SELECT *
FROM (
SELECT Id, Body, Score
FROM (
SELECT a.Id, a.ParentId, a.Body, a.Score FROM Posts a
WHERE a.ParentId = ##QuestionId##
)x
)x
WHERE (SELECT b.AcceptedAnswerId FROM Posts b WHERE b.id = ##QuestionId##) = id

第一部分找到投票最高的答案,第二部分搜索已接受的答案(如果有的话)。

两者都有点复杂,因为 Posts 表是关于答案和问题的。这就是两个嵌套的 FROM 的原因。

关于sql - 如何从 SEDE 中提取问题的已接受和最高投票答案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58612475/

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