powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / К-во покупателей которые сделали покупку на продукт 1 и продукт 2 (пересечения в таблицах)
3 сообщений из 3, страница 1 из 1
К-во покупателей которые сделали покупку на продукт 1 и продукт 2 (пересечения в таблицах)
    #39931766
khl91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Подскажите пожалуйста как корректно прописать запрос.
Есть две табл. - customer ,где указано покупки в разрезе покупателей и product_matrix - это матрица пересечения всех возможных комбинаций продуктов (5 продуктов, матрица 5*5).

Необходимо во второй табл. посчитать к-во покупателей которые сделали хотя бы одну покупку на продукт 1 и продукт 2. (пример таблиц во вложении)

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
select 
product_1,
product_2,
count (distinct customer_id) as cnt
from product_matrix as p
left outer join
(
select 
customer_id,
product_id
from customer as c
group by 1,2
) as b
on p.product_1= b.product_id  or p.product_2 = b.product_id
group by 1,2



Мой скрипт не коректно отробативает-считает если есть или продукт1 или продукт2, а если прописать через
Код: plsql
1.
and

:
Код: plsql
1.
2.
on p.product_1= b.product_id  and p.product_2 = b.product_id
group by 1,2


то считает к-во покупателей только по одному типу продукту.

Буду благодарна за помощь.
...
Рейтинг: 0 / 0
К-во покупателей которые сделали покупку на продукт 1 и продукт 2 (пересечения в таблицах)
    #39931819
Kr_Yury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
khl91, как-то так должно быть
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
with c as (
select distinct
customer_id,
product_id
from customer
)
select 
product_1,
product_2,
count (b.customer_id) as cnt
from product_matrix as p
left outer join c as a on p.product_1 = a.product_id
left outer join c as b on p.product_2 = b.product_id and b.customer_id = a.customer_id
group by 1,2;

То есть customer дважды соединяем с product_matrix
...
Рейтинг: 0 / 0
К-во покупателей которые сделали покупку на продукт 1 и продукт 2 (пересечения в таблицах)
    #39931838
khl91
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kr_Yury,
спасибо большое, работает
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / К-во покупателей которые сделали покупку на продукт 1 и продукт 2 (пересечения в таблицах)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]