|
Задача
|
|||
---|---|---|---|
#18+
На входе есть таблица с двумя полями code_cat (int) – код запчасти class_cat (varchar(1000)) – наименование У одной запчасти может быть много вариантов наименований. Нужно написать SQL запрос (желательно один), который удаляет из входной таблицы все избыточные строчки. Избыточными считаются те, в которых все слова в описании запчасти присутствуют в другом описании этой же запчасти. В любом порядке. Регистр не имеет значения, разделитель слов - пробел. Можно написать вспомогательную функцию или использовать CTE. Пример code_cat class_cat 1 'Запчасть крыло левое' 1 'Запчасть крыло' -- избыточная запись 1 'Запчасть крыло Mazda' 2 'Фонарь правый Mazda 626' 2 'Фонарь' -- избыточная запись 2 'Фонарь Mazda фонарь правый' -- избыточная запись 2 'Запчасть' 2 'Запч Mazda' 2 'Фонарь правый Mazda 626' -- избыточная запись 2 ' 626 626 ' -- избыточная запись ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2022, 09:20 |
|
Задача
|
|||
---|---|---|---|
#18+
ucheniik, а Вы сами что успели сделать? Или Вам надо сделать за Вас? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2022, 09:59 |
|
Задача
|
|||
---|---|---|---|
#18+
HandKot, делал перебором, но много вложенных циклов получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2022, 10:35 |
|
Задача
|
|||
---|---|---|---|
#18+
ucheniik, не сказал бы, что это задача для начинающего. Для решения необходимо составить словарь всех слов, входящих с таблицу и установить связь каждой строки с этим словарём через промежуточную таблицу. Затем искать вхождение множеств элементов словаря для каждой из строк друг в друга. Удалять те строки, элементы словаря которой полностью входят в элементы словаря другой, при этом, если оба множества совпадают, должна остаться любая из этих строк. По моему мнению, такую задачу лучше решать на каком-либо объектном языке. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2022, 12:16 |
|
Задача
|
|||
---|---|---|---|
#18+
1. разобрать строки на слова по разделителям. Результат - таблица, в которой одно слово занимает одну строку и слова из одной исходной строки имеют один id этой исходной строки. 2. собрать исходные строки из полученных слов для каждого id, но в словарном порядке. 3. удалить из каждой группы с одинаковыми строками все строки, кроме одной. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2022, 15:10 |
|
Задача
|
|||
---|---|---|---|
#18+
iap 1. разобрать строки на слова по разделителям. Результат - таблица, в которой одно слово занимает одну строку и слова из одной исходной строки имеют один id этой исходной строки. 2. собрать исходные строки из полученных слов для каждого id, но в словарном порядке. 3. удалить из каждой группы с одинаковыми строками все строки, кроме одной. 3.Сборка в словарном порядке не подойдет, как пример Zapchast levoe krylo - упорядочено по алфавиту. Zapchast krylo сделал через преобразование словаря по каждой категории в битовую маску Код: sql 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. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2022, 15:46 |
|
Задача
|
|||
---|---|---|---|
#18+
ValK412, можно бы было написать так: Код: sql 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.
но здесь большую роль играет в каком порядке определять не избыточную запись, в выделеном фрагменте предикат мог быть > или <> потому что в вашем варианте к примеру: Код: sql 1. 2. 3.
избыточными являются строки с id_cat {6,9}, хотя 4 и 9 равноценны и могла бы оставаться 9 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 12:57 |
|
Задача
|
|||
---|---|---|---|
#18+
felix_ff ValK412, можно бы было написать так: Код: sql 1. 2. 3. 4. 5. 6.
В целом мой пример оказался слишком школьным. Видимо, сильно влияние "обычных" языков программирования) Решение Код: sql 1. 2. 3. 4. 5. 6. 7.
с несколько измененными входными данными Код: sql 1. 2. 3. 4. 5.
исключит вариант Код: sql 1.
как избыточный, поскольку все слова из п.13 есть в других пунктах, но в других комбинациях. Думаю, это не верно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 16:59 |
|
Задача
|
|||
---|---|---|---|
#18+
проверку уникальности фразы сделать примерно так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2022, 19:12 |
|
Задача
|
|||
---|---|---|---|
#18+
ТС ждёт решения, надо как-то интенсивнее за него сделать всё, чтобы он ка не понимает, так и не понял, что это и куда ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2022, 20:24 |
|
|
start [/forum/topic.php?fid=46&msg=40136447&tid=1683796]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
254ms |
get tp. blocked users: |
1ms |
others: | 357ms |
total: | 700ms |
0 / 0 |