我正在查询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进行序列分析。
我该如何做到这一点?
答案 0 :(得分: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;
答案 1 :(得分: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