Неофициальный форум пользователей Qlik Sense & Qlikview

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: olegsky от 25 июня 2017, 10:45:11

Название: Поиск клиентов не покупающих определенные товары
Отправлено: olegsky от 25 июня 2017, 10:45:11
Есть такая таблица
Клиент , Товар , Цена
Клиент1,  Мышка, 100
Клиент1,  Монитор , 100
Клиент1,  Клавиатура, 100
Клиент2,  Клавиатура , 100
Клиент2,  Монитор , 100
Клиент 3,  Монитор , 100
Клиент 3,  Клавиатура, 100

Как найти клиента не купившего не одной мышки ?
Спасибо .
Название: Re: Поиск клиентов не покупающих определенные товары
Отправлено: Multicvet от 27 июня 2017, 05:55:30
На уровне скрипта найти или отчет нужен?
Название: Re: Поиск клиентов не покупающих определенные товары
Отправлено: millik от 28 июня 2017, 12:28:37
Оптимальный вариант использовать Set Analysis.

Например, выражение вида
Sum({<[Клиент]={"=SubStringCount(Concat([Товар]),'Мышка')=1"}>}[Цена])

выборка [Клиент]={"=SubStringCount(Concat([Товар]),'Мышка')=1"} исключает всех клиентов, которые не покупали мышки.

Чтобы было понятнее как получилось такое выражение немного иллюстрации
(https://qliksense-forum.ru/qvf/proxy.php?request=http%3A%2F%2Fi95.fastpic.ru%2Fbig%2F2017%2F0628%2Ff2%2Fe7cecb229fdf9b29319d23b0613c7ff2.png&hash=2836ab1a8ca4728f0430cf9d28b97c6b6cd2ce16)

Ну а дальше развивайте идею.
Название: Re: Поиск клиентов не покупающих определенные товары
Отправлено: millik от 28 июня 2017, 05:01:16
Добавлю ещё что
SubStringCount(Concat([Товар]),'Мышка')=1
можно заменить на любое логическое выражение, например, сравнивать продажи, количество и т.п.
Название: Re: Поиск клиентов не покупающих определенные товары
Отправлено: Andrey S от 28 июня 2017, 06:38:57
Можно использовать имплицитные модификаторы множеств

Хелп: http://help.qlik.com/ru-RU/qlikview/12.0/Subsystems/Client/Content/ChartFunctions/SetAnalysis/set-modifiers-implicit-field-value-definitions.htm (http://help.qlik.com/ru-RU/qlikview/12.0/Subsystems/Client/Content/ChartFunctions/SetAnalysis/set-modifiers-implicit-field-value-definitions.htm)

Выручка по клиентам, не покупавшим мышек:

sum( {$<Клиент = E({1<Товар={'Мышка'}>} Клиент)>} Цена )
Название: Re: Поиск клиентов не покупающих определенные товары
Отправлено: millik от 29 июня 2017, 09:34:39
Цитата: Andrey S от 28 июня  2017, 06:38:57  
Можно использовать имплицитные модификаторы множеств

Хелп: http://help.qlik.com/ru-RU/qlikview/12.0/Subsystems/Client/Content/ChartFunctions/SetAnalysis/set-modifiers-implicit-field-value-definitions.htm (http://help.qlik.com/ru-RU/qlikview/12.0/Subsystems/Client/Content/ChartFunctions/SetAnalysis/set-modifiers-implicit-field-value-definitions.htm)

Выручка по клиентам, не покупавшим мышек:

sum( {$<Клиент = E({1<Товар={'Мышка'}>} Клиент)>} Цена )
Тоже вариант. Очень даже красивый.