如何下载帖子表中的所有标签?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何下载帖子表中的所有标签?相关的知识,希望对你有一定的参考价值。

如果我在网站https://data.stackexchange.com中写“从帖子WHERE标签IS NOT NULL中选择标签”我只能下载50000行,我想要所有行

希望有人可以帮忙!

谢谢

答案

这并不能完全解决您的问题,但至少它以更有用的方式表达了逻辑。

您正在查询错误的表格以解决此类问题。代替:

with pt as (
      select pt.tagid, pt.postid, t.tagname
      from posttags pt join
           tags t
           on pt.tagid = t.id
     )
select pt.tagname, pt2.tagname, count(*)
from pt join
     pt pt2
     on pt.postid = pt2.postid and
        pt.tagname < pt2.tagname
group by pt.tagname, pt2.tagname
order by count(*) desc;

您仍然限制为50,000行,但您要让数据库完成更多工作。

StackOverflow SEDE限制为50,000行。这就是它的工作原理。几年前,他们将数据移到BigQuery上 - 不幸的是稍微修改了模式(我真的很想知道为什么)。

无论如何,您可以在BQ上返回大型结果集。等效查询是:

#standardSQL

with pt as (
      select pq.*, tag
      from `bigquery-public-data.stackoverflow.posts_questions` pq cross join
           unnest(split(pq.tags, '|')) tag 
     )
select pt.tag as tag1, pt2.tag as tag2, count(*) as cnt
from pt join
     pt pt2
     on pt2.id = pt.id and pt.tag < pt2.tag
group by 1, 2
order by count(*) desc;

这将返回所有4,689,465行结果 - 您可以将其保存在BigQuery表中或导出到文件并移动到另一个环境。

您可以注册BigQuery帐户并运行它。

以上是关于如何下载帖子表中的所有标签?的主要内容,如果未能解决你的问题,请参考以下文章

如果表中不存在新的帖子标签,则存储它?

如何加入表中的最新记录?

调用模板化成员函数:帮助我理解另一个 *** 帖子中的代码片段

如何从 Wordpress 页面/帖子中获取所有标签作为简码列表?

SQL查询从数据库中的一个表中获取所有帖子,但来自特定用户的最多5个条目? [复制]

如何在 post_table 和 Tags 表中插入标签?