Я ищу решение для этого (MS SQL 2008, кстати):SQL для идентификации дубликатов в древовидной структуре
ID | ParentID | Feature_1 | Feature_2 +-----+------------+------------+----------+ 1 | NULL | A | B 2 | 1 | A | B 3 | 1 | A | C 4 | 2 | A | C
Всякий раз, когда ребенок (запись с ParentID) имеет тот же набор функций (Feature_1 и Feature_2), что и его родительский элемент, я хочу игнорировать его, по сути, не показывать его в моем select *.
Таким образом, результирующий набор должен быть
ID | ParentID | Feature_1 | Feature_2 +-----+------------+------------+----------+ 1 | NULL | A | B 3 | 1 | A | C 4 | 2 | A | C
Обратите внимание, что ID = 2 отбрасывается, но ID = 4 отображается, поскольку он имеет различный набор функций, чем его родитель.
Любая помощь была бы высоко оценена!
Спасибо, ребята, но я дал плохой пример. Родитель может иметь несколько записей, а также своих детей. Все они должны быть проверены на наличие дубликатов или по существу сгруппированы, поэтому я вижу только уникальные комбинации функций для родителя и всего его прямого дочернего элемента (независимо от количества записей). Так эффективно мне нужно сравнивать наборы. – fexx
Тогда в вашем примере вы хотели бы сохранить запись с идентификатором 2, так как это уникальный родитель? –