Google bigquery 如何在GitHub归档中获取具有最大星星数的java存储库

Google bigquery 如何在GitHub归档中获取具有最大星星数的java存储库,google-bigquery,github-archive,Google Bigquery,Github Archive,我目前正在尝试使用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 P

我目前正在尝试使用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
选择存储库\u名称
来自[githubarchive:github.timeline]
其中repository_language='Java'
以及在PARSE_UTC_USEC('1996-01-01 00:00:00')和PARSE_UTC_USEC('2015-05-30 00:00:00')之间解析_UTC_USEC(创建于的存储库)
按存储库名称分组
计数(*)小于100的
按计数排序(*)说明
限制100

我想这个查询对你有用。现有查询将不会运行,因为
ORDER BY
子句引用了聚合计算<代码>订购依据要求表达式引用字段。将
COUNT
移动到
SELECT
子句中可以修复该部分

此外,如果您正在查找git提交的计数,那么您应该通过向
WHERE
子句添加
和payload\u commit不是NULL来检查timeline事件是否为提交

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
选择
存储库名称,
将(1)计为佣金帐户
从…起
[githubarchive:github.timeline]
哪里
存储库\语言='Java'
并解析UTC USEC(创建的存储库)
在UTC和USEC之间('1996-01-01 00:00:00')
并解析UTC USEC('2015-05-30 00:00:00')
并且有效负载_commit不为NULL
分组
存储库名称
有
佣金帐户<100
订购人
委托帐户说明
极限
100

非常感谢您的回复。。。我应该如何首先筛选具有最大星星数的项目,然后根据提交的数量筛选这些项目我不清楚GitHub如何在时间线数据中公开“星星”事件。所有事件类型似乎都不对应。也许他们在这个档案创建之后添加了星星?