|
|
|
Умная группировка с автоподбором признака группы
|
|||
|---|---|---|---|
|
#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, 15:29 |
|
||
|
Умная группировка с автоподбором признака группы
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2016, 16:28 |
|
||
|
Умная группировка с автоподбором признака группы
|
|||
|---|---|---|---|
|
#18+
Решил задачу так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. bro - это номер группы, которая потом нумеруется по порядку и получаем то, что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2016, 18:52 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=112&tid=1832188]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 340ms |

| 0 / 0 |
