SQL:如何查找从一个表链接到另一个表的最小条目数
发布时间:2020-12-12 07:28:52 所属栏目:MsSql教程 来源:网络整理
导读:假设我有一些Table_A: A_id | A_val1 a2 b3 c 一些Table_B: B_id | B_val1 d2 e3 g 和链接器Table_C: A_id | B_id1 12 12 23 13 23 3 我需要帮助尝试找到表A中与表B中链接最少的项目的项目.我目前是使用PostgreSQL的SQL的初学者,并认为它可能与使用子查询
假设我有一些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) 请注意,如果不同的a_id具有相同(最低)的链接数,则可能会返回多行(例如,如果a_id 1和4都只有1个链接). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |