|
Выборка, повторы в строке
|
|||
---|---|---|---|
#18+
Доброго времени суток, в таблице неодходимо убрать повторы в строке. Версий сборок 2, они сразу в одной таблице, но может быть более id parent name TYPE version11 Сборочная единица Наименование Сборка 11 Корпус Наименование Деталь 11 Корпус Раздел спецификации Деталь 12 Вкладыш NULL Деталь 13 Резина ГОСТ Марка материала Материал по КД 13 Резина ГОСТ Раздел спецификации Материал по КД 14 Кожа техн. Марка материала Материал по КД 15 Пластик Раздел спецификации Материал по КД 16 Болт М8 Раздел спецификации Стандартные изделия 122 Сборочная единица Наименование Сборка 211 Корпус Наименование Деталь 211 Корпус Раздел спецификации Деталь 22 Вкладыш NULL Деталь 13 Резина ГОСТ Марка материала Материал по КД 13 Резина ГОСТ Раздел спецификации Материал по КД 14 Кожа техн. Марка материала Материал по КД 15 Пластик Раздел спецификации Материал по КД 16 Болт М8 Раздел спецификации Стандартные изделия 1 Sql еще изучаю, запрос делаю через WHERE, но от одинаковых записей не уйти(Материал по КД и Раздел спецификации), как по другому это реализовать? Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2019, 11:23 |
|
Выборка, повторы в строке
|
|||
---|---|---|---|
#18+
bennisi, у тебя повторов нет - id разные ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2019, 12:21 |
|
Выборка, повторы в строке
|
|||
---|---|---|---|
#18+
bennisiв таблице неодходимо убрать повторыС точки зрения SQL "повтор" (хотя правильно - дубликат) - это когда равны значения ВСЕХ полей записи. Если хоть в одном поле хоть на полпробела разница - это уже не дубликаты. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2019, 12:30 |
|
Выборка, повторы в строке
|
|||
---|---|---|---|
#18+
в результате запроса остаются дубликаты записи: id parent name TYPE version3 Резина ГОСТ Марка материала Материал по КД 13 Резина ГОСТ Раздел спецификации Материал по КД 1 id одинаковые, следовательно должна быть одна запись этого материала ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2019, 12:37 |
|
Выборка, повторы в строке
|
|||
---|---|---|---|
#18+
bennisi id одинаковые, следовательно должна быть одна запись этого материалаЗначит, ВЫ (и никто иной), должны сформулировать чёткий и однозначный критерий, по которому любой, взяв несколько таких "дубликатов", чётко и однозначно определит, какая из этих записей должна остаться. Или, как вариант, как должна выглядеть одна запись, которая останется вместо всех этих. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2019, 13:39 |
|
Выборка, повторы в строке
|
|||
---|---|---|---|
#18+
Альтернативно, это может быть критерий, наоборот, удаления одной записи из группы. Ну, скажем, это может выглядеть как: 1) Если в группе есть записи с разным version - удалить все записи с не-макисмальным version. 2) Далее - если есть записи с name NOT NULL, удалить все записи с name IS NULL. 3) Из оставшихся оставить записи наименьшим name при сортировке по алфавиту. 4) ... В любом случае построенный алгоритм обязан гарантировать, что на каком-то его этапе (необязательно последнем) останется единственная запись. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2019, 13:45 |
|
Выборка, повторы в строке
|
|||
---|---|---|---|
#18+
может есть способ мой запрос подкорректировать? убрать 2 повторяющиеся строки с id = 3 , какая-нибудь функция отметания следующей строки, если id совпадает существует? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2019, 14:43 |
|
Выборка, повторы в строке
|
|||
---|---|---|---|
#18+
bennisiкакая-нибудь функция отметания следующей строкиПонятие "следующей строки" появится только после того, как в запросе появится ORDER BY по выражению, по которому все записи набора будут уникальны. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2019, 15:34 |
|
Выборка, повторы в строке
|
|||
---|---|---|---|
#18+
был не прав, пересмотрел запрос, каша возникает при объединении с атрибутами, таблица с файлами: idPerent id productversionNULL1СБ11 200Корпус11 201Болт М81NULL2СБ222 200Корпус22 201 Болт М822 202 Винт12203 Гайка1 необходимо соединить с таблицей атрибуты: id name_type type1 Разработал Иванов1 Наименование МоторДиз1 Раздел спец. Сборка2 Разработал Петров2 Наименование МоторБенз2 Раздел спец. Сборка200Наименование Блок201Раздел спец. Стандартные изд.201Марка мат. Сталь202Марка мат. Железо203Раздел спец. Стандартные изд. у некоторых файлов несколько атрибутов, желательно соединить по "Наименованию" , если нет то "Раздел спец." если нет то "Марка мат." И получить такой результат: idPerent id productversionname_type typeNULL1СБ1Наименование МоторДиз1 200Корпус1Наименование Блок1 201Болт М81Раздел спец. Стандартные изд.NULL2СБ22Наименование МоторБенз2 200Корпус2Наименование Блок2 201 Болт М82Раздел спец. Стандартные изд.2 202 Винт1Марка мат. Железо2203 Гайка1Раздел спец. Стандартные изд. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 15:12 |
|
Выборка, повторы в строке
|
|||
---|---|---|---|
#18+
bennisiжелательно соединить по "Наименованию" , если нет то "Раздел спец." если нет то "Марка мат." Лучше создать таблицу приоритетов соединения. Причём она же будет являться справочником name_type, т.е. у таблицы атрибутов будет FK на неё. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2019, 20:06 |
|
Выборка, повторы в строке
|
|||
---|---|---|---|
#18+
Akina, не совсем понимаю как должна выглядеть эта таблица приоритетов соединения? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2019, 07:59 |
|
Выборка, повторы в строке
|
|||
---|---|---|---|
#18+
точнее как таблица приоритетов соединения работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2019, 08:21 |
|
Выборка, повторы в строке
|
|||
---|---|---|---|
#18+
bennisiкак таблица приоритетов соединения работает?К базовой записи привязывается таблица атрибутов, а к ней таблица приоритетов. Соответственно в суммарной, развёрнутой, таблице мы имеем для каждой базовой записи несколько записей - в каждой из них копия базовой записи, один атрибут, и к нему приоритет именно этого атрибута. После чего из всех возможных для каждой записи атрибутов выбирается один, имеющий наибольший приоритет. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2019, 08:41 |
|
Выборка, повторы в строке
|
|||
---|---|---|---|
#18+
А затем - FAQ: Выборка первой/последней записи в группах . ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2019, 08:42 |
|
Выборка, повторы в строке
|
|||
---|---|---|---|
#18+
Akina, таблицу приоритетов я создал, что делать потом? Выборка что в faq не работает, либо я что-то не то делаю, либо из-за того, что по глупости не в ту ветку форума написал работаю в ms sql ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 09:36 |
|
Выборка, повторы в строке
|
|||
---|---|---|---|
#18+
bennisiработаю в ms sqlУуу.. сильно. Создавайте новую тему - в правильном разделе. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 11:02 |
|
|
start [/forum/topic.php?fid=47&fpage=38&tid=1829262]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
3ms |
others: | 319ms |
total: | 472ms |
0 / 0 |