2013-05-17 2 views
0

У меня проблема, когда я написал скрипт, который находит студентов, которые находятся в более чем одной школе, и im получает дубликаты записей для каждого класса в этой школе.Как сгруппировать похожие записи по одному значению

Проблема заключается в том, что учащиеся разделяют один и тот же уникальный первичный ключ, поэтому я не могу группироваться. И я не могу группироваться по школе или классу, так как это устраняет других учеников.

В основном я хочу сгруппировать все записи для каждого ученика в соответствии со школой, так что для каждого ученика есть только 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

Означает ли это, что вас вообще не интересует поле «Класс» или что вы хотите получить наименьшее значение класса? Вы можете быть немного более краткими? –

+0

Вы считаете используя различный? – varun

+0

Меня вообще не интересует поле класса, но его необходимо в объединении, чтобы найти, с какой студией связана школа. – mmSQL

ответ

1

Вы можете просто использовать группу пунктом, чтобы получить одну запись для каждой школы. Как

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 

Счетчик агрегатной функции рассчитывается как используемая группа. Просто игнорируйте его в наборе результатов. Теперь у вас будет один студент в каждой школе.

+0

Это не сработало ... он вернул тот же набор результатов – mmSQL

+0

Не добавляйте класс в select и group by. Тогда это сработает –

+0

Это работает! Спасибо .. Так что, думаю, группа должна перейти на школьный уровень – mmSQL

Смежные вопросы