ユーザーごとに 1 つの行を返す SQL クエリを作成しようとしています。その行には、そのユーザーに割り当てられた学校の数と、そのユーザーに割り当てられたすべての学校のポイントの合計が含まれている必要があります。
テーブル:
users (id, email)
schools (id, user_id, points (int))
との関係users
はschools
1 対多です。
私はここまで来ました:
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
間違っています。割り当てられた学校の行数ではなく、ユーザーの行数を返します。
どうすればその数を取得できますか?