Postgresql выберите количество с объединением - PullRequest
0 голосов
/ 06 июня 2018

У меня есть две таблицы:

CREATE TABLE stores (
stores_id varchar PRIMARY KEY,
owner_id varchar
);

CREATE TABLE sets (
sets_id varchar PRIMARY KEY,
stores_id varchar not null,
owner_id varchar not null,
item_id varchar not null,
);

Как мне сделать запрос, который показывает количество предметов на наборах в магазинах?С выбором по владельцу.

Например:

select
stores.*,
count(sets.item_id)
from stores
LEFT OUTER JOIN sets on stores.owner_id = sets.owner_id
where
stores.owner_id = 'e185775fc4f5'
GROUP BY stores.owner_id;

Спасибо.

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Я думаю, что вам нужно присоединиться как к магазину, так и к владельцу, а затем COUNT (DISTINCT item_id)

select
st.owner_id, 
st.stores_id, 
count(distinct se.item_id)
  from stores st left join
    sets se
       on st.owner_id = se.owner_id
       and st.stores_id = se.stores_id
           group by st.owner_id, st.stores_id;

. Это даст таблицу, которая показывает владельца, магазин, а затем номерпредметов

0 голосов
/ 06 июня 2018

Это то, что вы хотите?

select st.stores_id, count(se.item_id)
from stores st left join
     sets se
     on st.owner_id = se.owner_id
where st.owner_id = 'e185775fc4f5'
group by st.stores_id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...