Моя цель состоит в том, чтобы присоединиться к sample_contents
с sample_commits
по repo_name
Присоединение 02 столов по BigQuery с GitHub набора данных
1) Во-первых, я присоединился к sample_contents
с files
, так что он теперь содержит repo_name
SELECT line,a.id,sample_path,sample_repo_name,repo_name
FROM (
SELECT * FROM (
SELECT (SPLIT(content, '\n')) line , a.id,sample_path,sample_repo_name,repo_name
FROM (
(SELECT * FROM [bigquery-public-data:github_repos.sample_contents] WHERE sample_path LIKE '%.java')
) a JOIN (SELECT * FROM [bigquery-public-data:github_repos.files]) b ON a.id=b.id
) WHERE REGEXP_MATCH(line, '^String|^private int|^public|[.]')
)
2) Теперь, Я сделал следующее query
, ожидая получить все фиксации для любых данных файлов на repo_name
:
SELECT (CASE WHEN line CONTAINS 'String' THEN 'String' ELSE '' END) AS column_1,
(CASE WHEN line CONTAINS 'public' THEN 'public' ELSE '' END) AS column_2,line,a.id,sample_path,sample_repo_name,X.repo_name
FROM (
SELECT * FROM (
SELECT (SPLIT(content, '\n')) line , a.id,sample_path,sample_repo_name,repo_name
FROM (
(SELECT * FROM [bigquery-public-data:github_repos.sample_contents] WHERE sample_path LIKE '%.java')
) a JOIN (SELECT * FROM [bigquery-public-data:github_repos.files]) b ON a.id=b.id
) WHERE REGEXP_MATCH(line, '^String|^private int|^public|[.]')
)
X JOIN (SELECT * FROM [bigquery-public-data:github_repos.sample_commits]) Y ON X.repo_name=Y.repo_name LIMIT 100
Но оно возвращает 0 результат! Не могли бы вы помочь мне разобраться в этой проблеме?
Спасибо,
Я получаю немного потерял. .. Какова конечная цель этих запросов? –
Отслеживать «состояние» каждого java-кода за каждый репо за фиксацию –
'state'? не уверен еще ... –