SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 22.08.2017 16:08:47

Eskiz
Участник
Зарегистрирован: 22.08.2017
Сообщений: 1

совпадение значений в строке с выводом процента совпадения

Доброго времени суток!

Я не программист, но очень нужно решение для следующей задачи.
В SQL Server 2014 (возможен перевод не в SQL) есть база с данными:
ID | Категория продукта | название продукта | описание | комментарий |

Продукту может соответствовать несколько описаний, он может находится в нескольких категориях:
1 | Категория1 | продукт1 | описание1 | комментарий |
2 | Категория2 | продукт1 | описание2 | комментарий |
3 | Категория1 | продукт2 | описание3 | комментарий |
4 | Категория3 | продукт2 | описание4 | комментарий |

Описание – вариант комплектации в виде P123;654+O156;987;654+K.., где буква -  код составляющей, цифры - варианты моделей через «;», например, принтер - P12345;22222;7007. Составляющих несколько (P+P+O+K+…). Необходимо в рамках одной категории найти продукты, совпадающие по комплектации более чем на 70%, с выводом процента совпадения. Совпадением считается совпадение любой модели составляющей, т.е. P12345;22222;7007 = P12345;22222;15987;47777 = P22222;60006;5555 - совпадение 1, независимо от кол-ва совпавших моделей.
Возможно рассматривать в качестве совпадения полное совпадение составляющей P12345;22222;7007 = P12345;22222;7007.


Результат желателен в виде: 1 | Категория1 | продукт1 | описание1 | комментарий | 3 | Категория1 | продукт2 | описание3 | комментарий | 72%

Буду благодарна за частичное решение либо направление для поиска.

Неактивен

 

#2 22.08.2017 19:49:10

klow
Активист
Зарегистрирован: 06.12.2014
Сообщений: 248

Re: совпадение значений в строке с выводом процента совпадения

Для начала рекомендовал бы поработать в направлении нормализации базы.
Например, создать таблицы
1. Продукты
2. Категории
3. Продукт-Категория
4. Комплектация
5. Продукт-Комплектация
6. ...
Наверно, можно что-то выкрутить из приведенной Вами таблицы, но это будет временное решение (на сегодня) и гарантированная большая головная боль на обозримое будущее.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson