gpt4 book ai didi

sql - 选择具有连接计数记录的不同记录

转载 作者:行者123 更新时间:2023-12-04 02:15:08 26 4
gpt4 key购买 nike

我有两个表:CompanyContact,它们是一对多的关系。我还有另一张表 Track,它将一些公司标识为其他公司的母公司。 enter image description here

我想编写一个 SQL 查询,从 Track 中选择母公司以及每个母公司拥有的联系人数量。

SELECT Track.ParentId, Count(Contact.companyId) 
FROM Track
INNER JOIN Contact
ON Track.ParentId = Contact.companyId
GROUP BY Track.ParentId

但是结果比我运行以下查询时保存的记录少:

SELECT DISTINCT Track.ParentId
FROM Track

我尝试了添加了 DISTINCT 的第一个查询,它返回了相同的结果(比预期的要少)。

最佳答案

您正在对 Contact 表执行 INNER JOIN,这意味着第一个表(在本例中为 Track)中与 JOIN 不匹配的任何行ed 表不会显示在您的结果中。尝试改用 LEFT OUTER JOIN

带有 Contact.companyIdCOUNT 将只计算匹配的行(Contact.companyId 不是 NULL)。由于您计算的是联系人,这很好,因为它们将计为 0。如果您尝试计算其他一些数据集并尝试在特定列上执行 COUNT(而不是 COUNT (*)) 那么该列中的任何 NULL 值都不会计入您的总数,这可能是也可能不是您想要的。

关于sql - 选择具有连接计数记录的不同记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34724457/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com