このクエリは、を使用table1
した関連レコードとともにからいくつかの行を取得します。table2 の行をそれぞれ 10 行に制限しました。table2
left join lateral
select t1.id, array_agg(t2.column1)
from table1 t1
left join lateral (select * from table2 where table1_id = t1.id order by column2 limit 10) t2 on true
where t1.other = other_value
group by t1.id
しかし、count(*)
table1 に関連する table2 のすべてのレコードの合計をどのように含めることができますか ( select count(*) from table2 where table1_id = t1.id
)。横方向の結合を行っているため、これらの結果をどのように追加するかわかりません。
既に行っている横結合を再利用できますか、それとも最初の結合には制限がなく、別の横結合を行う必要がlimit 10
ありますか? count(*)
このように機能させるには、クエリはどのように見える必要がありますか? (最初の横結合から配列スライス構文を使用してそれを行う方法があると思いますが、それらの数を取得するためだけにすべての行を取得する必要があるため、費用がかかると思います。)