请教一个经典的 postgres 的 sql 怎么写

查看 41|回复 1
作者:qweruiop   
现在有 2 张表:student 和 transactions
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

Morii   
奇怪,首先我没用过 pgsql ,但是根据我用 mysql 的经验 ,我有一个疑问,使用 student 作为左表去 left join 右表,为什么会没有 id =3 的数据呢?
您需要登录后才可以回帖 登录 | 立即注册

返回顶部