2016-10-28 4 views
-2

У меня есть таблица записей с уникальным крестом ID, присоединенным к себе на ControlID, который соответствует подобным записям.sqlite GROUP Пропуская строку

Начальная таблица:

ID (key), ControlID (records match), ... other fields 
31 | 56 ... 
32 | 56 ... 
33 | 56 ... 

Дата вылета:

ID, ControlID, ID (2), ControlID (2), ..., matchID (sum of ID keys) 
31 | 56 | 32 | 56 ... 63 
31 | 56 | 33 | 56 ... 64 
32 | 56 | 31 | 56 ... 63 
32 | 56 | 33 | 56 ... 65 
33 | 56 | 31 | 56 ... 64 
33 | 56 | 32 | 56 ... 65 

Мне нужно исключить строки, которые дублируют комбинации идентификаторов, следовательно matchID. Мне нужна только одна строка для каждой matchID и комбинации ControlID. Итак, я понял, что GROUP BY ControlID, matchID будет работать. Вот мой результат:

33 | 56 | 31 | 56 ... 64 
33 | 56 | 32 | 56 ... 65 

Почему это не включает следующую строку?

31 | 56 | 32 | 56 ... 63 

Или этот ряд?

32 | 56 | 31 | 56 ... 63 

Должен быть возвращен один из строк с идентификатором match 63, не так ли? Что мне не хватает?

+0

Укажите текущий запрос. –

ответ

0

Я только что добавил условие, что ID < ID (2). Это дает необходимый результат, но я до сих пор не понимаю, почему GROUP BY не работает.

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