我正在尝试编写一个为每个用户返回一行的 SQL 查询。该行必须包含分配给该用户的学校计数以及分配给该用户的所有学校的总分。
表:
users (id, email)
schools (id, user_id, points (int))
关系users
是schools
一对多的。
我已经做到了这一点:
select u.id, u.email,
count(*) as total_schools,
sum(points) as total_points
from users u
left join schools s
on u.id = s.user_id
group by u.id
但这并不完全奏效。count(*) as total_school
是错的。它返回用户行数,而不是分配的学校行数。
我怎么得到这个数?