|
|
|
Уникальность поля
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Возникла следующая проблема. Есть таблица (53000 записей) со случайными числами (5 полей). Как мне проверить, что каждая запись (каждая последовательность чисел) больше не повторяется в таблице? При этом сам порядок следования чисел не важен. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 01:50 |
|
||
|
Уникальность поля
|
|||
|---|---|---|---|
|
#18+
Каждое число хранится в отдельном поле. Тип - character (но могу поменть, если это критично). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 02:01 |
|
||
|
Уникальность поля
|
|||
|---|---|---|---|
|
#18+
Не критично. Scatter To Mas -> Сортировка данных в массиве -> Create Table ... From Array Mas -> Select ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 07:05 |
|
||
|
Уникальность поля
|
|||
|---|---|---|---|
|
#18+
ПетяняНе критично. Scatter To Mas -> Сортировка данных в массиве -> Create Table ... From Array Mas -> Select Прошу прощения. "Create Table ... From Array Mas" заменить на "Create Table ... From Array Mas (Append From Array Mas)" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 07:11 |
|
||
|
Уникальность поля
|
|||
|---|---|---|---|
|
#18+
Не понял. Это ведь только сортировка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 08:20 |
|
||
|
Уникальность поля
|
|||
|---|---|---|---|
|
#18+
Уникальность по столбцу или уникальность по все таблице? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 10:44 |
|
||
|
Уникальность поля
|
|||
|---|---|---|---|
|
#18+
Если по столбцам, то Код: plaintext Если по все таблице, то создать курсор и влить в него все значения из таблицы и потом к этому курсору указанный запрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 10:52 |
|
||
|
Уникальность поля
|
|||
|---|---|---|---|
|
#18+
вопрос маленько не правильно прочитал. :D можно например так (table1 твоя таблица) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 11:24 |
|
||
|
Уникальность поля
|
|||
|---|---|---|---|
|
#18+
100gramЕсть таблица (53000 записей) со случайными числами (5 полей). Как мне проверить, что каждая запись (каждая последовательность чисел) больше не повторяется в таблице? При этом сам порядок следования чисел не важен. Если в первой записи в 5 полях записаны значения 1,2,3,4,5, а во второй - 5,4,3,2,1 - такие записи считать повторяющимися? Т.е. считать такие записи одинаковыми? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 19:38 |
|
||
|
Уникальность поля
|
|||
|---|---|---|---|
|
#18+
ВладимирМ 100gramЕсть таблица (53000 записей) со случайными числами (5 полей). Как мне проверить, что каждая запись (каждая последовательность чисел) больше не повторяется в таблице? При этом сам порядок следования чисел не важен. Если в первой записи в 5 полях записаны значения 1,2,3,4,5, а во второй - 5,4,3,2,1 - такие записи считать повторяющимися? Т.е. считать такие записи одинаковыми? Да, считать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 19:42 |
|
||
|
Уникальность поля
|
|||
|---|---|---|---|
|
#18+
скульвопрос маленько не правильно прочитал. :D можно например так (table1 твоя таблица) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Работает ОЧЕНЬ долго. :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 21:51 |
|
||
|
Уникальность поля
|
|||
|---|---|---|---|
|
#18+
скульвопрос маленько не правильно прочитал. :D можно например так (table1 твоя таблица) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Прошу прощения. Туплю. Работает по скорости приемлимо, но выдает нули в курсоре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 21:56 |
|
||
|
Уникальность поля
|
|||
|---|---|---|---|
|
#18+
Логика достаточно простая. 1) Надо из значений всех 5 полей сформировать символьную строку, но такую строку, чтобы под каждое число (значение поля) отводилось фиксированное количество символов и все числа в строке распологались бы в порядке возрастания (или убывания - не важно). Например, если в одной записи содержаться числа: 12, 1, 25, 7, 30 То формируем из них символьную строку вида: "00010007001200250030". Как ее сформировать - чуть ниже. Вкратце уже намекнул Петяня 2) Ищем дубли сформированных строк простым запросом Select-SQL с условием HAVING COUNT(*)>1 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. Не знаю, насколько такая функция окажется эффективной (в смысле - быстрой) в твоем случае. Возможно, эффективнее будет сделать прямое сканирование таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2006, 23:30 |
|
||
|
Уникальность поля
|
|||
|---|---|---|---|
|
#18+
Битовые маски тебе помогут. Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2006, 03:21 |
|
||
|
Уникальность поля
|
|||
|---|---|---|---|
|
#18+
100gram Прошу прощения. Туплю. Работает по скорости приемлимо, но выдает нули в курсоре. В котором именно курсоре? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2006, 04:39 |
|
||
|
Уникальность поля
|
|||
|---|---|---|---|
|
#18+
ВладимирМЛогика достаточно простая. 1) Надо из значений всех 5 полей сформировать символьную строку, но такую строку, чтобы под каждое число (значение поля) отводилось фиксированное количество символов и все числа в строке распологались бы в порядке возрастания (или убывания - не важно). Например, если в одной записи содержаться числа: 12, 1, 25, 7, 30 То формируем из них символьную строку вида: "00010007001200250030". Как ее сформировать - чуть ниже. Вкратце уже намекнул Петяня 2) Ищем дубли сформированных строк простым запросом Select-SQL с условием HAVING COUNT(*)>1 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. Не знаю, насколько такая функция окажется эффективной (в смысле - быстрой) в твоем случае. Возможно, эффективнее будет сделать прямое сканирование таблицы. Только здесь нужно учитывать, что поля чар, и если одно из них будет пустое, то например ' '+' 3'<>' 0'+' 3' :( А в моем примере нули могут буть, если в полях числа 0 целых N десятых, в этом случае перевод нуно делать в стринг учитывая дробную часть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2006, 05:24 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33644999&tid=1591959]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
161ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 441ms |

| 0 / 0 |
