Google bigquery Bigquery Stackoverflow-按类别查询已关闭的问题 背景信息

Google bigquery Bigquery Stackoverflow-按类别查询已关闭的问题 背景信息,google-bigquery,Google Bigquery,如前所述,StackOverflow问题可能由于以下几个原因而被关闭,即重复…,因为…,需要细节或清晰,需要更多的关注点和基于观点 查询在Google云平台上的公共StackOverflow Bigquery上执行。 此Bigquery包含POST_问题和投票,第一个包含所有问题,第二个包含对这些问题的投票 发布问题模式: 身份证件 标题 身体 已接受\u答案\u id 答覆 评论与计数 ... 例如,[howto]查询由于重复而关闭的问题 您应该使用PostHistory表 PostHisto

如前所述,StackOverflow问题可能由于以下几个原因而被关闭,即重复…,因为…,需要细节或清晰,需要更多的关注点和基于观点

查询在Google云平台上的公共StackOverflow Bigquery上执行。 此Bigquery包含POST_问题和投票,第一个包含所有问题,第二个包含对这些问题的投票

发布问题模式:

身份证件 标题 身体 已接受\u答案\u id 答覆 评论与计数 ... 例如,[howto]查询由于重复而关闭的问题

您应该使用PostHistory表

PostHistoryTypeId

  • 10=关闭后-投票后关闭
评论:此字段将包含编辑帖子的用户的评论。如果PostHistoryTypeId=10,则此字段包含关闭原因的CloseReasonId

  • 1=完全重复
  • 101=重复
最后,查询是

SELECT q.id, CONCAT('https://stackoverflow.com/questions/', 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   
我的问题是,是否可以根据投票结束的原因查询投票结束的问题

有输出

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