Google bigquery 如何获取具有最大星星数且提交次数少于100次的java存储库

Google bigquery 如何获取具有最大星星数且提交次数少于100次的java存储库,google-bigquery,github-archive,Google Bigquery,Github Archive,我目前正在尝试使用GitHub Archive和BigQuery获得前100个具有最多星星数和少于100次提交的java存储库。你能帮我提出一个问题吗 我编写的最初查询是为了获得Java语言的前100条记录,如下所示: SELECT repository_name FROM [githubarchive:github.timeline] WHERE repository_language = 'Java' AND PARSE_UTC_USEC(repository_created_at) &g

我目前正在尝试使用GitHub Archive和BigQuery获得前100个具有最多星星数和少于100次提交的java存储库。你能帮我提出一个问题吗

我编写的最初查询是为了获得Java语言的前100条记录,如下所示:

SELECT repository_name
FROM [githubarchive:github.timeline]
WHERE repository_language = 'Java' 
AND PARSE_UTC_USEC(repository_created_at) >= PARSE_UTC_USEC('1996-01-01 00:00:00') 
AND PARSE_UTC_USEC(repository_created_at) < PARSE_UTC_USEC('2015-05-30 00:00:00') 
GROUP BY repository_name
LIMIT 100 
选择存储库\u名称
来自[githubarchive:github.timeline]
其中repository_language='Java'
和PARSE_UTC_USEC(repository_created_at)>=PARSE_UTC_USEC('1996-01-01 00:00:00'))
和PARSE_UTC_USEC(创建于的存储库)


添加一个
HAVING
子句以对组设置条件:


非常感谢您的回复。。。我还需要包括每个仓库获得的星星数。如何将其包含到给定的答案中。这是一个单独的问题:我认为我们应该将COUNT(*)移动到select语句中,并在order by语句中使用别名。否则查询将不起作用。@user2475467尽管它对所有主流SQL数据库都能正常工作,但我已经按照您的建议添加了子查询版本。
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  -- Add this clause
ORDER BY COUNT(*) DESC -- Add this to make the LIMIT meaningful
LIMIT 100
SELECT * FROM (
    SELECT repository_name, COUNT(*) commit_count
    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
) x
ORDER BY commit_count DESC
LIMIT 100