Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / distinct on with left join / 1 сообщений из 1, страница 1 из 1
17.03.2021, 13:54
    #40054564
Alex_Wong
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
distinct on with left join
Добрый день. Подскажите, пожалуйста, как правильно соединять
через left join таблицы с distinct on у каждой, например такие:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
SELECT * 
FROM
(
SELECT DISTINCT ON (t1.nus)
t1.aus,
t1.nus,
t1.sts,
t1.fki
FROM t1
WHERE t1.fki = 85
ORDER BY t1.nus, t1.aus DESC
) as s1
WHERE s1.sts = true;

--

SELECT * 
FROM
(
SELECT DISTINCT ON (t2.num)
t2.aum,
t2.num,
t2.stm,
t2.ptm
FROM t2
ORDER BY t2.num, t2.aum DESC
) as s2
WHERE s2.stm = true;



из того, что получилось (но через inner join) типа такого :

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
with ...

select .. .. .. as item from
(SELECT * FROM (SELECT DISTINCT ON (t1.nus)
t1.aus, t1.nus, t1.sts, t1.fki
FROM t1
WHERE t1.fki = 85
ORDER BY t1.nus, t1.aus DESC
) as s1
WHERE s1.sts = true
) n1
inner join
(SELECT * FROM (SELECT DISTINCT ON (t2.num)
t2.aum, t2.num, t2.stm, t2.ptm
FROM t2
ORDER BY t2.num, t2.aum DESC
) as s2
WHERE s2.stm = true
) n2
on (n2.ptm = n1.fki)
group by  n1.aus
order by n1.aus
)            

...



но уже на трёх таблицах с distinct on, - не получается.
Как правильно связывать такие таблицы, чтобы не
потерять в скорости? спасибо.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / distinct on with left join / 1 сообщений из 1, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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