sou*_*ami 7 sql postgresql select count min
假设我有一些Table_A:
A_id | A_val
1 a
2 b
3 c
Run Code Online (Sandbox Code Playgroud)
一些表_B:
B_id | B_val
1 d
2 e
3 g
Run Code Online (Sandbox Code Playgroud)
和链接器Table_C:
A_id | B_id
1 1
2 1
2 2
3 1
3 2
3 3
Run Code Online (Sandbox Code Playgroud)
我需要帮助尝试找到表A中与表B中链接最少的项目的项目.我目前是使用PostgreSQL的SQL初学者,并认为它可能与使用子查询有关.我设法使用以下方法计算链接:
SELECT A_id, COUNT(B_id) as Num_links
FROM TABLE_C
GROUP BY A_id;
Run Code Online (Sandbox Code Playgroud)
但我不知道从哪里开始.
您可以使用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)
Run Code Online (Sandbox Code Playgroud)
请注意,如果不同的链接数量相同(最低),则这可能会返回多行a_id(例如,如果a_id1 和 4 各只有 1 个链接)。
| 归档时间: |
|
| 查看次数: |
672 次 |
| 最近记录: |