N删除由null扩展的任何行,即只保留行上的内部联接,即“将外部联接转换为内部联接”。您已经有了。@philipxy尽管使用SQL很多年了,但我以前从未需要过交叉连接。因为我使用的是新的东西,所以我假设我的bug比我更高级,只是作为一个傀儡,使用左连接过滤

N删除由null扩展的任何行,即只保留行上的内部联接,即“将外部联接转换为内部联接”。您已经有了。@philipxy尽管使用SQL很多年了,但我以前从未需要过交叉连接。因为我使用的是新的东西,所以我假设我的bug比我更高级,只是作为一个傀儡,使用左连接过滤,sql,postgresql,cross-join,Sql,Postgresql,Cross Join,N删除由null扩展的任何行,即只保留行上的内部联接,即“将外部联接转换为内部联接”。您已经有了。@philipxy尽管使用SQL很多年了,但我以前从未需要过交叉连接。因为我使用的是新的东西,所以我假设我的bug比我更高级,只是作为一个傀儡,使用左连接过滤,而不是交叉连接。仅仅删除WHERE子句实际上并不能解决我的问题,因为我还需要将SELECT更改为使用s.n而不是c.week\u num。这个链接(以及你的评论)本可以帮助我达到目的,但这并不完全是重复的。你同意/不同意吗?如果你同意,你能解


N删除由null扩展的任何行,即只保留行上的内部联接,即“将外部联接转换为内部联接”。您已经有了。@philipxy尽管使用SQL很多年了,但我以前从未需要过
交叉连接。因为我使用的是新的东西,所以我假设我的bug比我更高级,只是作为一个傀儡,使用
左连接
过滤,而不是
交叉连接
。仅仅删除
WHERE
子句实际上并不能解决我的问题,因为我还需要将
SELECT
更改为使用
s.n
而不是
c.week\u num
。这个链接(以及你的评论)本可以帮助我达到目的,但这并不完全是重复的。你同意/不同意吗?如果你同意,你能解开我的问题吗?干杯:)我给了一个明显问题的重复链接。(将测试从
where
移动到
on
并不是一个神奇的解决方案,这只是拙劣的答案猜测&没有解释。而且我们通常不知道解决方案,因为没有明确的预期规范来描述以
where
结尾的子表达式——例如这里。)但这篇文章仍然应该关闭(让答案被阻止,直到清除为止)因为缺少一个可以确定第一个错误点的答案,我们可以说是“问题”。重复确实适用,甚至是最严重的/第一个错误&我不能改变(只放弃)接近投票&在你给出MRE之前,一些接近投票是有保证的。
SELECT a.id, a.author_name, a.author_email, s.n as week_num, COUNT(c.id) as post_count
FROM author AS a
     CROSS JOIN generate_series(1, 610) AS s(n)
     LEFT JOIN  (SELECT c.id,
                        c.author_id,
                        c.author_date,
                        WEEK_NUMBER(c.author_date) AS week_num
                 FROM commit_metrics c) AS c ON s.n = c.week_num AND a.id = c.author_id
GROUP BY a.id, a.author_name, a.author_email, s.n
ORDER BY s.n DESC, a.author_name;
SELECT a.id, a.author_name, a.author_email, s.n as week_num, COUNT(c.id)
FROM author a CROSS JOIN
     generate_series(1, 610) AS s(n) LEFT JOIN
     commit_metrics c
     ON s.n = WEEK_NUMBER(c.author_date) AND a.id = c.author_id
GROUP BY a.id, a.author_name, a.author_email, c.week_num
ORDER BY c.week_num DESC, a.author_name;