假设我有一些Table_A:
A_id | A_val 1 a 2 b 3 c
一些Table_B:
B_id | B_val 1 d 2 e 3 g
和链接器Table_C:
A_id | B_id 1 1 2 1 2 2 3 1 3 2 3 3
我需要帮助尝试找到表A中与表B中链接最少的项目的项目.我目前是使用Postgresql的sql的初学者,并认为它可能与使用子查询有关.我设法使用以下方法计算链接:
SELECT A_id,COUNT(B_id) as Num_links FROM TABLE_C GROUP BY A_id;
但我不知道从哪里开始.
解决方法
您可以使用with子句为“count”查询提供别名,并将其视为临时表.然后选择a_id,其num_links小于或等于num_links中的最低计数.
WITH link_counts AS ( SELECT a_id,COUNT(b_id) as num_links FROM table_c GROUP BY a_id ) SELECT a_id FROM link_counts WHERE num_links <= (SELECT MIN(num_links) FROM link_counts)