1

Google 为 Stackoverflow 的内容提供了一个公共数据集。我们可以在这里阅读。当我登录 GCP Cloud Console 并访问 BigQuery 页面并提交以下查询时:

select id, tags from `bigquery-public-data.stackoverflow.posts_questions` limit 10

显示给我的结果表将标签字段显示为串联项目。

在此处输入图像描述

如果我查看 JSON,我似乎看到了相同的结果:

在此处输入图像描述

我的假设是标签将由“|”分隔 字符,但数据似乎显示不同。我希望能更好地理解这一点。我的最终目标是执行查询以查找包含给定标签的所有问题。

4

2 回答 2

1

要查找包含给定标签名称的所有 Stackoverflow 问题,您可以使用 SQL 运算符LIKE。在查找数据库字段中的特定模式时,此运算符非常有用。它在WHERE语句之后指定,语法如下:

SELECT field1, field2, ...
FROM table
WHERE fieldN LIKE pattern;

这些模式通常使用以下通配符编写,这些通配符可以生成类似正则的表达式:

  • 百分号"%"查找任何零个或多个字符的字符串。

    示例SELECT * WHERE fieldN LIKE "%foo%"将返回 fieldN 列中包含字符串“foo”的所有条目。

  • 下划线符号"_"查找任何单个字符。

    示例SELECT * WHERE fieldN LIKE "A_"将返回所有以字符“A”开头的条目。

为了找到包含给定标签的所有 Stackoverflow 问题TAGNAME,您可以使用该模式"%TAGNAME%"。在此示例中,查询将返回标签字段包含单词“javascript”的所有条目:

SELECT 
  *
FROM 
  `bigquery-public-data.stackoverflow.posts_questions` 
WHERE 
  tags LIKE "%javascript%"
于 2019-11-11T12:12:13.910 回答
0

我们发现,将 Stackoverflows 中的源数据转换为 BigQuery 表的方式存在错误。谷歌创建了一个问题来解决并最终发布它已得到修复。因此,这个故事/帖子是短暂的,将来可能无法复制,也没有价值。

于 2019-12-08T17:53:22.333 回答