|
|
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
Есть таблица TABLE1(Field char(5)). Нужно удалить все дубликаты Код: plsql 1. Это не работает. Ведь в таблице нет уникального идентификатора. Как тогда придумать запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2016, 18:54 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
olga802005, Delete from t where t.rowid in (select min(rowid) from t group by [double signs]) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2016, 19:46 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
Привыкайте писать test cases. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2016, 20:30 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
dmdmdm Код: plsql 1. А где мозг? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2016, 07:53 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
Elic, Подумаешь, описАлся. Сразу "где моск?" Конечно, not in. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2016, 09:29 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
Элик, Блин, зачем сбиваешь. In, но having count(1)>1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2016, 09:40 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
[/quot]А где мозг?[/quot] У меня на месте. Тест кейс, говорю, пишите, все грабли сразу видны будут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2016, 09:49 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
dmdmdmТест кейс, говорю, пишите, все грабли сразу видны будут. А Apex подойдет с веб интерфейсом для тестов запросов если нет на ПК Оракла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2016, 10:35 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
Разумеется. Более того, я подозреваю, что никакого смысла открывать APEX и закрывать стандартный доступ к ораклу нет, так что доступ у вас, скорее всего есть, и неважно, на какой Оракл машине. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2016, 10:45 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
UseRowidБлин, зачем сбиваешь. In, но having count(1)>1Запускать следует в цикле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2016, 12:00 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
dmdmdmУ меня на месте.Чудак, учись отвечать адресно , чтобы не выглядеть севшим в лужу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2016, 12:01 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
dmdmdm, для таких простых тесткейсов обычно не создают табличек а делают inline views с dual. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2016, 12:06 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
olga802005Нужно удалить все дубликаты Если у таблицы есть колонка Identity, то можно так: Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2016, 19:22 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
olga802005Нужно удалить все дубликаты Тоже недавно потребовалось. Простейшим оказалось это решение (может окажется полезным): Код: plsql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2017, 16:09 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
Foxter, Точно IN ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2017, 16:21 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
Foxter, Трижды читать из таблицы? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2017, 16:28 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
artas, Ну да, подзапрос сформирует список rowid (по группам схожих строк за вычетом минимального, который и будет изъят из всех rowid таблицы). А сам запрос удалит все строки с этими rowid из списка. Вроде все логично, в чем - то видите подвох? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2017, 16:32 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
FoxterВроде все логично, в чем - то видите подвох?Возьми первый ответ в теме, заменив in на not in. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2017, 16:34 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
AmKadFoxterВроде все логично, в чем - то видите подвох?Возьми первый ответ в теме, заменив in на not in. Да, согласен, так еще проще. Век живи, век учись ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2017, 16:36 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
olga802005Есть таблица TABLE1(Field char(5)). Нужно удалить все дубликаты Код: plsql 1. Это не работает. Ведь в таблице нет уникального идентификатора. Как тогда придумать запрос? FAQ sql.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2017, 16:58 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
olga802005Есть таблица TABLE1(Field char(5)). Нужно удалить все дубликаты Код: plsql 1. Это не работает. Ведь в таблице нет уникального идентификатора. Как тогда придумать запрос? Группировать по всем полям записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2017, 17:30 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
на собеседовании часто задают такую задачку. обычно алгоритм : 1) сделать distinct по всем полям, таким оразом удалятся все дубликаты (ну подразумевается, что записи в разном регистре или там с запятыми пробелами различающимися- не дубли), 2) зафигачить результаты запроса во временную таблицу, 3) затереть исходную табличку 4) зафигачить туда данные из временной таблицы. дедупликация называется. а одним запросом - хз мне на собеседованиях наверное 4-ех один и тот же вопрос задавали еще часто про нарастающие итоги одним запросом спрашивают. Прям поголовно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2017, 17:34 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2017, 18:02 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эх решение из другого ... :) Stax.. жосткий такой :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 00:50 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. А дальше, хоть MAX(ROWID) оставить хоть MIN(ROWID) или вообще найти зацепку другую. Удалять в зависимости от того что есть правильно - первая или последняя запись (а может "средняя" :) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 08:14 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
Foxter, Можно и так, я думаю Код: plsql 1. 2. 3. 4. Или так, проще выставлять сортировку для оставшихся Код: plsql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 12:23 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
MaximaXXLИли такnot in null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 12:39 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousДобрый Э - Эх решение из другого ... :) Stax.. жосткий такой :) надеюсь пользоваться merge не будут (кроме дба) зы мне нравится вариат с индексом .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 12:52 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
-2-MaximaXXLИли такnot in null Что то тупанул , сенкс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 12:53 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
Staxandrey_anonymousпропущено... Stax.. жосткий такой :) надеюсь пользоваться merge не будут (кроме дба) зы мне нравится вариат с индексом .... stax а почему тебе не нравится мерж? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 14:09 |
|
||
|
Удаление дубликатов в таблице одним запросом
|
|||
|---|---|---|---|
|
#18+
ДобрыйМакса почему тебе не нравится мерж? А потому что ты доку не читаешь: докaSpecify the DELETE where_clause to clean up data in a table while populating or updating it. The only rows affected by this clause are those rows in the destination table that are updated by the merge operation. The DELETE WHERE condition evaluates the updated value, not the original value that was evaluated by the UPDATE SET ... WHERE condition. If a row of the destination table meets the DELETE condition but is not included in the join defined by the ON clause, then it is not deleted. Any delete triggers defined on the target table will be activated for each row deletion. Т.e. MERGE вначале выполнит UPDATE/INSERT и только затем DELETE? Оно тебе надо? SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2017, 14:42 |
|
||
|
|

start [/forum/topic.php?all=1&fid=52&tid=1884737]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
| others: | 197ms |
| total: | 372ms |

| 0 / 0 |
