0
我有4個表如何在postgresql中使用join和聚合函數?
表1
id | name
1 | A
2 | B
表2
id | name1
1 | C
2 | D
表3
id | name2
1 | E
2 | F
表4
id | name1_id | name2_id | name3_id
1 | 1 | 2 | 1
2 | 2 | 2 | 2
3 | 1 | 2 | 1
4 | 2 | 1 | 1
5 | 1 | 1 | 2
6 | 2 | 2 | 1
7 | 1 | 1 | 2
8 | 2 | 1 | 1
9 | 1 | 2 | 1
10 | 2 | 2 | 1
現在我想參加所有的表有4個,並得到此類型的輸出
name | count
{A,B} | {5, 5}
{C,D} | {5, 6}
{E,F} | {7, 3}
我想這
select array_agg(distinct(t1.name)), array_agg(distinct(temp.test))
from
(select t4.name1_id, (count(t4.name1_id)) "test"
from table4 t4 group by t4.name1_id
) temp
join table1 t1
on temp.name1_id = t1.id
我試圖做到這一點。任何人都可以幫助我。
請標記相應的數據庫系統。你不能同時使用所有不同的數據庫系統 – Squirrel
好吧我編輯我的問題 –
我試過這個... select array_agg(distinct(rt.name)),array_agg(distinct(temp.test)) from (select f.resource_type_id,(count(f.resource_type_id))「test」from planner.resource_entity f join planner.resource_type ft on f.resource_type_id = ft.id group by f.resource_type_id)temp join planner.resource_type rt 在temp.resource_type_id = rt.id –