Мне нужно попробовать большое количество java проектов из Github. Я использую Google Big Query для запроса архива GitHub. В настоящее время я могу сделать длинный список, который содержит каждое событие релиза для лучших java репо.
Я хотел бы, однако, объединить результаты, когда результаты с соответствующим именем репо помещаются в одну строку, а затем создаются отдельные столбцы даты для каждого события, предпочтительно месяц за месяцем, со ссылкой на URL-адрес релиз, который я извлеку из полезной нагрузки JSON (может быть несколько событий релиза за один месяц). Я дал макет ниже
У меня мало опыта в SQL помимо базовых и я хотел бы знать, хочу ли я сделать это просто или сложно. Я могу сделать все это в java, но я надеюсь сэкономить время, используя SQL на этапе запроса.
ТЕКУЩИЙ ВЫХОД
repo.name created at link
repoA 2018-12-06 02:04:27 UTC url
repoA 2018-02-07 02:33:57 UTC url
repoA 2018-02-18 00:55:15 UTC url
repoB 2018-03-21 19:14:02 UTC url
repoB 2018-04-11 02:07:04 UTC url
repoC 2018-07-02 14:58:12 UTC url
ЧТО ХОЧУ
Jan Feb Mar April May
REPO A URL URL
REPO B URL
REPO C URL URL , URL
Мой текущий запрос:
* ВЫБЕРИТЕ имя-репозитория, созданного_от FROM githubarchive.year.2018 ГДЕ type = "ReleaseEvent" И имя-репозитория IN ( очень длинный список репозиториев ) ORDER BY repo.name *;
Я буду добавлять JSON_EXTRACT, чтобы получить полезную нагрузку, получить URL из полезной нагрузки
SELECT имя_ресурса, созданный_кат, JSON_EXTRACT (полезная нагрузка, '$. zipball_url') ОТ
СХЕМА:
type STRING NULLABLE https://developer.github.com/v3/activity/events/types/
payload STRING NULLABLE Event payload in JSON format
repo. name STRING NULLABLE Repository name
created_at TIMESTAMP NULLABLE Timestamp of associated event