У меня есть выбор, который объединяет две таблицы, a
и b
, через таблицу соединения, ab
.
select a.*, b.*
from a
left join ab on a.id = ab.aid
left join b on b.id = ab.bid;
И это производит
id | athing | id | bthing
----+----------+----+-----------
7 | athing x | 1 | bthing a
7 | athing x | 2 | bthing b
7 | athing x | 3 | bthing c
3 | athing y | 1 | bthing a
(4 rows)
Мне нужен столбец, который постепенно подсчитывает количество строк в a
. То есть:
count | id | athing | id | bthing
-------+----+----------+----+-----------
1 | 7 | athing x | 1 | bthing a
1 | 7 | athing x | 2 | bthing b
1 | 7 | athing x | 3 | bthing c
2 | 3 | athing y | 1 | bthing a
(4 rows)
Я рассмотрел использование оконной функции row_number()
, но, похоже, она подсчитывает все строки.
Я хочу постепенно подсчитывать отдельные a
строк, независимо от того, сколько строк создает объединенная таблица.
Возможно ли это в Postgresql? Спасибо.