Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Подсчет и вывод повторяющихся наборов
|
|||
|---|---|---|---|
|
#18+
Привет. Есть вопрос, который я решил упростить для размещения здесь, чтобы вникание в суть не отняло много времени. Допустим, есть магазин, в котором всего 5 товаров: рыба, мясо, молоко, сыр и хлеб. И таблица, в которой указывается состав заказа. fkey_order_id (внешний ключ на таблицу с заказами, номер заказа) fkey_item_id (внешний ключ на таблицу с продуктами) Заполнена она примерно следующим образом (вместо id продуктов я указал их текстовое значение, чтобы было понятнее): order_id ........ fkey_item_id 1 ..................... Мясо 1 ..................... Рыба 1 ..................... Хлеб 2 ..................... Рыба 2 ..................... Сыр 3 ..................... Хлеб 3 ..................... Рыба 3 ..................... Мясо 4 ..................... Молоко 4 ..................... Сыр 5 ..................... Рыба 5 ..................... Хлеб 5 ..................... Мясо 6 ..................... Сыр 6 ..................... Рыба 7 ..................... Мясо 7 ..................... Хлеб ... ... ... и т.д. _________________________ Встречаются заказы с одинаковым составом. Зеленым цветом я выделил повторяющийся заказ из 3 позиций, а синим - повторяющийся из двух позиций. Оставшиеся 2 заказа, набранные черным цветом, не повторяются и нам в этой задаче не интересны. Что нужно получить на выходе? Список популярных заказов (точнее, их состав) и количество - сколько раз они были заказаны. В рамках нашего примера это выглядело бы так: ________________ 1) Рыба, Хлеб, мясо (3 ) 2) Сыр, рыба ( 2 ) Вопрос А: Подскажите, пожалуйста, формат запроса на примере этой простой таблицы? Вопрос Б: такие запросы с точки зрения SQL тяжелы для исполнения? В сравнении с обычными выборками.. Речь не идет о десятках миллионов записей, конечно. Но тем не менее. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 22:36 |
|
||
|
Подсчет и вывод повторяющихся наборов
|
|||
|---|---|---|---|
|
#18+
sameuser, Заказы "Рыба, Хлеб, мясо" и "Рыба, Рыба, Хлеб, мясо" эквиваленты между собой? С точки зрения бизнеса - странная у вас аналитика. Было бы куда интереснее считать пары (ведущий-ведомый) товаров в заказах, чтобы при заказе одного товара предлагать другой товар. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 22:58 |
|
||
|
Подсчет и вывод повторяющихся наборов
|
|||
|---|---|---|---|
|
#18+
Привет, спасибо за ответ! авторЗаказы "Рыба, Хлеб, мясо" и "Рыба, Рыба, Хлеб, мясо" эквиваленты между собой? В заказе не может быть повторяющихся товаров. И максимальное количество товаров ограничено: не более 3 штук на заказ по этому примеру. Сами же заказы могут быть одинаковыми по составу (разные клиенты могут заказывать одинаковые наборы продуктов), но в то же время могут различаться порядком следования элементов внутри. Я это продемонстрировал в "зеленой" и "синей" группе товаров. авторС точки зрения бизнеса - странная у вас аналитика. Ну, да. Я пример упростил, по факту же - заказывается скорее некоторый набор услуг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 23:18 |
|
||
|
Подсчет и вывод повторяющихся наборов
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. Вместо '~' можно взять любой символ или строку, которые гарантированно не встречаются в исходных данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 00:02 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39657953&tid=1829805]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 259ms |
| total: | 389ms |

| 0 / 0 |
