我是SQL的新手,在使用SELECT时有些失落。我有两个表:table1有两列,分别带有名称和唯一的整数标识符(例如998,“ Dave”); table2有一个相关的列,该列重复相同的标识符(998的多个实例)。
我想运行查询以遍历表1中的每一行,并对表2中的该唯一整数的每个实例进行计数/ SELECT(例如,如果存在3个Dave 998号的实例,我希望SELECT输出column1:'Dave ',第2列:3)这等效于简单的CountIf的其他地方,这可能是我的问题的一部分-我陷入了Python的困境,但仍在努力调整。
答案 0 :(得分:2)
一个简单的联接/计数查询应该在这里工作:
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;
请注意,我们在这里保留了连接并计数table2.id
,因为在第一个表中的id
不匹配的情况下,它将正确报告计数为零。
答案 1 :(得分:2)
您将需要两个基本但功能强大的SQL概念才能获得所需的结果。不管什么数据库引擎和什么版本,所有关系数据库都固有地支持afaik):JOIN
和Aggregation
(count
和group by
)。
select t1.name, count(t2.id)
from table1 t1
join table2 t2
on t1.id = t2.id
group by t1.name;