3

我目前正在尝试使用 GitHub Archive 和 BigQuery 获取前 100 个具有最大星数和少于 100 次提交的 Java 存储库。请您帮忙提出一个查询,以获取拥有最大星数的前 100 个存储库。

我得到的最终查询是:

SELECT repository_name
FROM [githubarchive:github.timeline]
WHERE repository_language = 'Java' 
AND PARSE_UTC_USEC(repository_created_at) BETWEEN PARSE_UTC_USEC('1996-01-01 00:00:00') AND PARSE_UTC_USEC('2015-05-30 00:00:00') 
GROUP BY repository_name
HAVING COUNT(*) < 100 
ORDER BY COUNT(*) DESC 
LIMIT 100
4

1 回答 1

3

我认为这个查询对你有用。您现有的查询不会运行,因为该ORDER BY子句引用了聚合计算。ORDER BY要求表达式引用字段。将 inCOUNT移入SELECT子句可修复该部分。

此外,如果您正在寻找 git 提交的计数,您实际上应该通过添加AND payload_commit IS NOT NULLWHERE子句来检查时间线事件是否是提交!

SELECT
  repository_name,
  COUNT(1) AS CommitCount
FROM
  [githubarchive:github.timeline]
WHERE
  repository_language = 'Java'
  AND PARSE_UTC_USEC(repository_created_at)
    BETWEEN PARSE_UTC_USEC('1996-01-01 00:00:00')
    AND PARSE_UTC_USEC('2015-05-30 00:00:00')
AND payload_commit IS NOT NULL
GROUP BY
  repository_name
HAVING
  CommitCount < 100
ORDER BY
  CommitCount DESC
LIMIT
  100
于 2015-06-08T16:41:57.623 回答