正如这里所解释的,StackOverflow 问题可以由于多种原因而关闭,即重复的...、偏离主题的原因...、需要细节或清晰度、需要更多的关注和基于意见的。
查询在 Google Cloud Platform 上的公共 StackOverflow Bigquery 上执行。这个 Bigquery 包含post_questions和votes等表,第一个包含所有问题,第二个包含对这些问题的投票。
post_questions架构:
| ID | 标题 | 身体 | accepted_answer_id | answer_count | 评论计数 | ... |
|---|
投票架构:
| ID | 创立日期 | post_id | 投票类型 ID |
|---|
存在 16 个不同的vote_type_id,根据Meta上的这篇文章,vote_type_id 6 对应于关闭投票。在用户投了三票后,一个问题在 StackOverflow 上显示为已结束。因此,以下查询将返回 10 个已关闭问题的 id 和 URL。
SELECT q.id, CONCAT('/sf/', CAST(q.id as STRING)) as url,
FROM `bigquery-public-data.stackoverflow.posts_questions` AS q
JOIN `bigquery-public-data.stackoverflow.votes` AS v
ON q.id = v.post_id
WHERE v.vote_type_id = 6
GROUP BY q.id
HAVING COUNT(*) >= 3
LIMIT 10
Run Code Online (Sandbox Code Playgroud)
我的问题是,是否可以根据接近投票的原因查询已结束的问题?例如,查询 250 个问题因重复而关闭?
例如,[howto] 查询因重复而关闭的问题?
您应该使用 PostHistory 表
帖子历史记录类型 ID
评论:此字段将包含编辑帖子的用户发表的评论。如果 PostHistoryTypeId = 10,则此字段包含关闭原因的 CloseReasonId
所以,最后 - 查询是
SELECT q.id, CONCAT('/sf/', CAST(q.id as STRING)) as url,
FROM `bigquery-public-data.stackoverflow.posts_questions` AS q
JOIN `bigquery-public-data.stackoverflow.post_history` AS h
ON q.id = h.post_id
WHERE h.post_history_type_id = 10
AND h.comment in ('1', '101')
GROUP BY q.id
Run Code Online (Sandbox Code Playgroud)
我的问题是,是否可以根据关闭投票原因查询关闭的问题?
SELECT CASE
WHEN comment IN ('1', '101') THEN 'Duplicate'
WHEN comment = '102' THEN 'Off-topic'
WHEN comment = '3' THEN 'Subjective and argumentative'
WHEN comment = '4' THEN 'Not a real question'
WHEN comment = '7' THEN 'Too localized'
WHEN comment = '10' THEN 'General reference'
WHEN comment = '20' THEN 'Noise or pointless (Meta sites only)'
WHEN comment = '103' THEN '''Unclear what you're asking'''
WHEN comment = '104' THEN 'Too broad'
WHEN comment = '105' THEN 'Primarily opinion-based'
ELSE 'Unknown'
END close_reason,
COUNT(DISTINCT q.id) cloased_posts
FROM `bigquery-public-data.stackoverflow.posts_questions` AS q
JOIN `bigquery-public-data.stackoverflow.post_history` AS h
ON q.id = h.post_id
WHERE h.post_history_type_id = 10
GROUP BY close_reason
ORDER BY cloased_posts DESC
Run Code Online (Sandbox Code Playgroud)
带输出
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |