0

ユーザーごとに 1 つの行を返す SQL クエリを作成しようとしています。その行には、そのユーザーに割り当てられた学校の数と、そのユーザーに割り当てられたすべての学校のポイントの合計が含まれている必要があります。

テーブル:

users (id, email)
schools (id, user_id, points (int))

との関係usersschools1 対多です。

私はここまで来ました:

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間違っています。割り当てられた学校の行数ではなく、ユーザーの行数を返します。

どうすればその数を取得できますか?

4

1 に答える 1