Предположим, у меня есть приложение в продуктовом магазине с таблицей покупок:
customerId int
itemId int
В магазин приходят четыре клиента:
Bob buys a banana, lemonade, and a cookie
Kevin buys a banana, lemonade, and a donut
Sam buys a banana, orange juice, and a cupcake
Susie buys a banana
Я пытаюсь написать запрос, который быверните, какие комбинации предметов наиболее популярны.В этом случае, результаты этого запроса должны быть:
banana and lemonade-2
Я уже написал запрос, который сообщает мне список всех предметов, которые были в покупке нескольких предметов (мы исключаем продажи одного предмета- оно не может образовывать «комбинацию»).Он возвращает:
banana - 3
lemonade - 2
cookie - 1
donut - 1
cupcake - 1
orange juice - 1
Вот запрос:
SELECT itemId, count( * )
FROM grocery_store
INNER JOIN (
SELECT customerId
FROM grocery_store
GROUP BY customerId
HAVING count( itemId ) > 1
)subQuery ON subQuery.customerId = grocery_store.customerId
GROUP BY itemId;
Могу ли я получить указатель о том, как расширить существующий запрос, чтобы получить желаемый результат?