1

我在 BigQuery 上查询 github 公共数据集。目前,我对所需内容的最佳查询如下所示。

SELECT type, created_at, repository_name FROM [githubarchive:github.timeline]
WHERE
    (created_at CONTAINS '2012-')
AND repository_owner="twitter"
ORDER BY created_at, repository_name;

这为我提供了来自该用户拥有的所有存储库(“repository_name”)的 repository_owner twitter(或任何其他用户)的所有事件(“type”),但在一个列中。

但是,我真正想要的是在列中包含所有事件(“类型”),每个存储库一列(“repository_name”),或多或少像这样:

bootstrap     commons    twui
WatchEvent    PushEvent  PushEvent
WatchEvent    WatchEvent PushEvent

时间戳(“created_at”)仅与排序机制相关。列不必等长,单行上的事件不必同时发生。

我将使用它来将事件放入 R 包 TraMineR 中进行序列分析。

我怎样才能做到这一点?

4

2 回答 2

0

这行得通吗?

SELECT type, created_at, repository_name 
FROM [githubarchive:github.timeline]
WHERE
    (created_at CONTAINS '2012-')
AND repository_owner="twitter"
GROUP BY type,created_at, repository_name;
于 2012-08-09T06:16:07.317 回答
0

我不确定我是否完全理解您希望完成的任务,但可以通过以下方式获取列:

SELECT type, bootstrap, commons, twui
FROM   (
       SELECT type,
              SUM(IF(repository_name = 'bootstrap', 1, 0)) AS bootstrap,
              SUM(IF(repository_name = 'commons', 1, 0)) AS commons,
              SUM(IF(repository_name = 'twui', 1, 0)) AS twui
       FROM   [githubarchive:github.timeline]
       WHERE  created_at CONTAINS '2012-'
       AND    repository_owner = "twitter"
       GROUP BY type
       )
ORDER BY type
于 2012-08-09T22:49:39.537 回答