我有一个问题,我写了一个脚本,找到了一所学校的学生,并且我在该学校的每个班级都获得了重复的记录。
问题是学生共享相同的唯一主键,因此我不能按此分组。我不能按学校或班级分组,因为这会消除其他学生。
基本上我想根据学校对每个学生的所有记录进行分组,这样每个学生每个学校只有1个记录。
我并不关心哪个班级的分组,因为我真的很想找到在一所学校上市的学生。
例如
id first Last Class School
22 mike bundy 1 tan
22 mike bundy 2 tan
22 mike bundy 3 light
我想将其归结为此
id first Last Class School
22 mike bundy 1 tan
22 mike bundy 3 light
答案 0 :(得分:1)
您可以简单地使用group by子句来获取每所学校的单个记录。像
SELECT
user.user_id,
user.last_name,
user.first_name,
student.sis_id,
organization.`NAME`AS school,
count(*) as Count
FROM
user
JOIN student ON user.user_id = student.user_id
JOIN x_user_group ON _user.user_id = x_user_group.user_id
JOIN group ON _x_user_group.group_id = group.group_id
JOIN organization ON group.owner_id = organization.organization_id
Group by
user.user_id,
user.last_name,
user.first_name,
student.sis_id,
school
Order by
user.last_name,
user.first_name
使用group by时需要聚合函数计数。只需在结果集中忽略它。现在每个学校都会有一名学生。