У меня есть 3 таблицы:
t_user (идентификатор, имя) t_user_deal (идентификатор, user_id, deal_id) t_deal (идентификатор, название)запрос для подсчета количества уникальных отношений
нескольких пользователей может быть связано с такой же сделка. (Я использую oracle, но он должен быть похож, я могу его адаптировать)
Как я могу получить всех пользователей (имя) с количеством уникального пользователя, с которым он заключил сделку.
давайте объясним с некоторыми данными:
t_user:
id, name
1, joe
2, mike
3, John
t_deal:
id, title
1, deal number 1
2, deal number 2
t_user_deal:
id, user_id, deal_id
1, 1, 1
2, 2, 1
3, 1, 2
4, 3, 2
В результате я ожидаю: user_name, количество уникальных пользователей, он заключил сделку с Джо, 2 Майком, 1 Иоанном, 1
Я попробовал это, но я не получил ожидаемого результата:
SELECT tu.name,
count(tu.id) AS nbRelations
FROM t_user tu
INNER JOIN t_user_deal tud ON tu.id = tud.user_id
INNER JOIN t_deal td ON tud.deal_id = td.id
WHERE
(
td.id IN
(
SELECT DISTINCT td.id
FROM t_user_deal tud2
INNER JOIN t_deal td2 ON tud2.deal_id = td2.id
WHERE tud.id <> tud2.user_id
)
)
GROUP BY tu.id
ORDER BY nbRelations DESC
спасибо за помощь
Спасибо так много. – user1370289