|
|
|
Как оптимально написать запрос (построить алгоритм) на удаление дублей?
|
|||
|---|---|---|---|
|
#18+
Возможно, это задача типичная для приложений баз данных. Дано: В таблице Table1 есть 4 поля (наряду с прочими): Phone1, Model, [Year], PubDate. Надо: Удалить все записи с одинаковыми значениями первых трех полей, но чтобы запись с самым последним PubDate осталась. Если все PubDate одинаковы, то без разницы, какие удалять, но одна запись, чтобы осталась по любому. Вопрос: можно ли это реализовать как-нибудь одним (двумя) запросами. Или все же писать алгоритм (на VB), создавать рекодсет, прокручивать, удаляя? И как в этом случае правильно построить алгоритм? Может кто-то уже работал над подобной задачей? Заранее спасибо. Иван Абрамов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2004, 11:58 |
|
||
|
Как оптимально написать запрос (построить алгоритм) на удаление дублей?
|
|||
|---|---|---|---|
|
#18+
О недавно подсмотрел Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2004, 12:09 |
|
||
|
Как оптимально написать запрос (построить алгоритм) на удаление дублей?
|
|||
|---|---|---|---|
|
#18+
http://www.ibase.ru/devinfo/deldupes.htm здесь несколько вариантов описано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2004, 12:16 |
|
||
|
Как оптимально написать запрос (построить алгоритм) на удаление дублей?
|
|||
|---|---|---|---|
|
#18+
Спасибо, paparome, но я вижу, что твой запрос удалит только те, где t1.PubDate < t2.PubDate. А как быть в случае, когда и PubDate одинаковые, и надо оставить одну (любую) запись? Blunder, тоже спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2004, 12:39 |
|
||
|
Как оптимально написать запрос (построить алгоритм) на удаление дублей?
|
|||
|---|---|---|---|
|
#18+
Подкорректировал немного запрос delete t1.* from tblAd t1 inner join tblAd t2 on t1.phone1 = t2.phone1 and t1.model = t2.model and t1.year = t2.year and (t1.PubDate < t2.PubDate or (t1.PubDate = t2.PubDate and t1.ID < t2.ID)) Так наверно будет то, что надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2004, 12:50 |
|
||
|
Как оптимально написать запрос (построить алгоритм) на удаление дублей?
|
|||
|---|---|---|---|
|
#18+
Хороший вариант у Ивана Обрамова, только объясните ID - это что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2004, 12:59 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32540831&tid=1674245]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
19ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 322ms |

| 0 / 0 |
