加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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个链接).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读