现在有 2 张表:student 和 transactions
student 长这样:
id | name |
---|---|
1 | a |
2 | b |
3 | c |
transactions
id | student_id | updated_at |
---|---|---|
1 | 1 | 2024-02-06T16:41:05+08:00 |
2 | 1 | 2024-02-06T13:41:05+08:00 |
3 | 2 | 2024-02-06T12:41:05+08:00 |
现在想在 postgres 里面用一个 sql ,查出每个用户的 transaction 数量,并且把没有的多一行为 0 。
SELECT s.id AS student_id, s.name, COUNT(t.id) AS transactions_count
FROM student s
LEFT JOIN transactions t ON s.id = t.student_id
GROUP BY s.id, s.name;
但是这样,查出来的结果是
student_id | name | transactions_count |
---|---|---|
1 | a | 2 |
2 | b | 1 |
但是我们需要查出的结果是
student_id | name | transactions_count |
---|---|---|
1 | a | 2 |
2 | b | 1 |
3 | c | 0 |
求教各位高手指点下这个 sql 怎么写。。。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.