如何按单个值对类似记录进行分组

时间:2013-05-17 18:52:30

标签: mysql group-by grouping

我有一个问题,我写了一个脚本,找到了一所学校的学生,并且我在该学校的每个班级都获得了重复的记录。

问题是学生共享相同的唯一主键,因此我不能按此分组。我不能按学校或班级分组,因为这会消除其他学生。

基本上我想根据学校对每个学生的所有记录进行分组,这样每个学生每个学校只有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

1 个答案:

答案 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时需要聚合函数计数。只需在结果集中忽略它。现在每个学校都会有一名学生。