Bigquery Stackoverflow-按类别查询已关闭的问题

曼努埃尔·福克斯(Manuel Fuchs)

背景信息

正如解释在这里,由于多种原因,即,StackOverflow的问题可以被关闭的...重复题外话,因为......需要细节还是清晰度需要更多的关注基于意见

查询是在Google Cloud Platform上的公共StackOverflow Bigquery上执行的。除其他表格外,此Bigquery包含posts_questionsvotes,第一个包含所有问题,第二个包含对这些问题的投票。

posts_questions模式:

ID 标题 身体 Accepted_answer_id answer_count comment_count ...

投票架构:

ID 创建日期 post_id 投票类型编号

存在16个不同的vote_type_id,根据关于Meta的帖子,vote_type_id 6对应于近距离投票。用户投了三票赞成票后,StackOverflow上出现一个关闭问题。因此,以下查询返回10个已关闭问题的ID和URL。

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.votes` AS v
  ON q.id = v.post_id
WHERE v.vote_type_id = 6
GROUP BY q.id
HAVING COUNT(*) >= 3
LIMIT 10

我的问题是,是否有可能根据接近投票的原因查询已关闭的问题?例如,查询250个由于重复而被关闭的问题?

米哈伊尔·伯利安(Mikhail Berlyant)

像[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    

带输出

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Stackoverflow异常关闭表单

来自分类Dev

按类别划分的BigQuery分区

来自分类Dev

BigQuery 时间查询问题

来自分类Dev

如何基于搜索查询从stackoverflow API获取问题列表?

来自分类Dev

Rails中的Stackoverflow用户标签查询?

来自分类Dev

Java Regex组导致Stackoverflow问题

来自分类Dev

stackoverflow如何创建问题的唯一编号?

来自分类Dev

实现类似 stackoverflow 的标签搜索栏的问题?

来自分类Dev

按条件查询BigQuery中的数组列

来自分类Dev

BigQuery按情况分组

来自分类Dev

BigQuery 按日期过滤

来自分类Dev

在BigQuery中优化查询

来自分类Dev

BigQuery查询失败处理

来自分类Dev

BigQuery中的查询缓存

来自分类Dev

获取查询Bigquery的直方图

来自分类Dev

今天的Bigquery性能问题?

来自分类Dev

今天的Bigquery性能问题?

来自分类Dev

stackoverflow API-获取每个用户的答案和问题数

来自分类Dev

如何在StackOverflow上测试Django问题的答案

来自分类Dev

在BigQuery中按DATETIME排名

来自分类Dev

BigQuery - 按数组分组

来自分类Dev

StackOverFlow延迟

来自分类Dev

TCP的Stackoverflow?

来自分类Dev

StackOverFlow延迟

来自分类Dev

每个查询或每行的BigQuery配额是否已更改?

来自分类Dev

谁为BigQuery查询付费?

来自分类Dev

BigQuery重叠值分布查询

来自分类Dev

Google BigQuery查询速度很慢

来自分类Dev

BigQuery Java:查询响应被截断