
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
06.02.2016, 15:29:04
|
|||
|---|---|---|---|
|
|||
Умная группировка с автоподбором признака группы |
|||
|
#18+
Доброе время_суток. Столкнулся с задачей, которая не помещается в ум. Может кто сталкивался с таким? Итак, задача: Есть таблица товаров products product_id101102103104105---199 Есть таблица свойств товара properties product_id property(varchar)101 prop1101 prop2101 prop3......101prop99......102 prop11102 prop12102 prop13......102 prop199......103 prop4104 prop2105 prop12106 prop1106 prop3107 prop13108 prop11108 prop13......150 prop1150 prop11......199propXXX нужно получить таблицу группировки похожих товаров (по цветам) - похожие товары помечаются одинаковым цветом (цвет произвольный) result product_id color_id101 1102 2103 1104 1105 2......150 0......199 xx Признаки похожести товара: Товар считается похожим, если есть хотя бы одно одинаковое свойство с другим товаром. Если товар имеет свойства из разных цветовых групп, то группа эта не верная и аннулируется. и товар включается в цветовую группу "0" (пример товар №150) Задается максимальное количество групп числом (например 10), если групп реально больше, то остальные в группу "0" Изначальное количество групп для списка товаров неизвестно и вычисляется из конкретного списка товаров и списка свойств. Если товары не группируются, то у них всего одна цветовая группа "0" Если товары группируются не все, то те товары, которые невозможно отнести к какой-то группе входят в группу "0". Зачем это нужно? когда большой список товара, невозможно понять, какой товар похож на другой, а какой совсем из другого "теста", поэтому нужно помечать похожие товары одним цветом, а другие похожие товары - другим цветом. Если похожих товаров нет, то и они все помечаются цветом "0". PS: Сломал голову, не могу придумать алгоритм, и следовательно и не могу придумать запрос. Помогите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.02.2016, 16:28:49
|
|||
|---|---|---|---|
|
|||
Умная группировка с автоподбором признака группы |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.02.2016, 18:52:17
|
|||
|---|---|---|---|
|
|||
Умная группировка с автоподбором признака группы |
|||
|
#18+
Решил задачу так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. bro - это номер группы, которая потом нумеруется по порядку и получаем то, что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&tablet=1&tid=1832188]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
181ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 214ms |
| total: | 490ms |

| 0 / 0 |
