如何从BigQuery的获得几列?(How to get several columns from

2019-09-21 01:57发布

我上查询的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_owner的twitter(或任何其他用户)(“类型”)(“repository_name”),但在一列。

不过,我真正想要的是让所有的事件在列(“类型”),为每个库(“repository_name”)一列,或多或少是这样的:

bootstrap     commons    twui
WatchEvent    PushEvent  PushEvent
WatchEvent    WatchEvent PushEvent

时间戳(“created_at”)仅作为排序机制的相关性。 列不需要必须是同样长,并且在同一行上的事件并不需要在同一时间发生。

我会用这个把事件转换为R包占美娜做序列分析。

我怎样才能做到这一点?

Answer 1:

工作的呢?

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;


Answer 2:

我不知道我理解你希望完成什么,但有可能通过这样的事情来获得列:

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


文章来源: How to get several columns from BigQuery?