在表之间选择count

b4lqfgs4  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(201)

我是sql的新手,对使用select有点迷茫。我有两个表:table1有两个列,其中有一个名称和唯一的整数标识符(e.x.'dave',998);表2有一个相关列,它重复相同的标识符(998的多个示例)。
我想运行一个查询来遍历表1中的每一行,并计算/选择表2中唯一整数的每个示例(e、 g.如果有3个dave的998数字的示例,我想选择输出column1:'dave',column2:3)这将相当于一个简单countif的其他地方,这可能是我的问题的一部分——我被困在python上,仍在努力调整。

gkl3eglg

gkl3eglg1#

您将需要两个基本但功能强大的sql概念来获得您想要的结果。无论是哪种数据库引擎和版本,所有关系数据库都固有地支持它(afaik): JOIN & Aggregation ( countgroup by ) .

select t1.name, count(t2.id)
from table1 t1
join table2 t2
on t1.id = t2.id
group by t1.name;
lawou6xi

lawou6xi2#

一个简单的连接/计数查询应该在这里工作:

SELECT
    t1.name,
    t1.id,
    COUNT(t2.id) AS cnt
FROM table1 t1
LEFT JOIN table2 t2
    ON t1.id = t2.id
GROUP BY
    t1.name,
    t1.id;

注意,我们留下了join和count table2.id 在这里,因为如果 id 在第一个表匹配为nothing时,它将正确地报告计数为零。

相关问题