У меня есть отношение многие ко многим - OrderPostions
между таблицами (Orders
и Urls
), и я хотел бы получить сумму всех URL-адресов, находящихся в Orders
.Каждый заказ может иметь много URL-адресов, и каждый URL-адрес может быть во многих заказах, каждый заказ принадлежит клиенту.Цель этого запроса - узнать, сколько URL-адресов разделено между клиентами.
На данный момент у меня есть:
select sum(nb.byUrl)
from
( select count(U.UrlId) as byUrl
from Urls U
inner join OrderPositions OP on U.UrlId = OP.UrlId
inner join Orders O on O.OrderId = OP.OrderId
group by (U.Url)
having count(OP.OrderId) >= 2
) nb
И sqlfiddle со схемой здесь: http://www.sqlfiddle.com/#!18/824b7/44