student 长这样:
[td]id[/td]
[td]name[/td]
1
a
2
b
3
c
transactions
[td]id[/td]
[td]student_id[/td]
[td]updated_at[/td]
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;
但是这样,查出来的结果是
[td]student_id[/td]
[td]name[/td]
[td]transactions_count[/td]
1
a
2
2
b
1
但是我们需要查出的结果是
[td]student_id[/td]
[td]name[/td]
[td]transactions_count[/td]
1
a
2
2
b
1
3
c
0
求教各位高手指点下这个 sql 怎么写。。。
student_id, 2024-02-06, SQL, student