首页 > 解决方案 > SQL中如何同时计数和分组?(北风)

问题描述

我正在著名的“Northwind”数据库上学习 SQL。

所以这里是架构:https ://miro.medium.com/max/4800/1*vluK_68f8_WnlL66qmRrXQ.png

我想返回有关公司“联合包裹”已为其运送至少 7 个包裹的客户的信息。所以我想数一数。

当我尝试这个时:

select c.CompanyName,
count(o.OrderID) as number_packages 

from Customers as c
join Orders as o 
on c.CustomerID = c.CustomerID

join Shippers as s
on o.ShipVia = s.ShipperID
where s.CompanyName like 'united package'
group by c.CompanyName;

它返回给我一个 CompanyName 正确的表,并且在所有行 326 中的 number_packages 中......所以我猜它是“United Package”运输的所有包裹的数量。

如何使其计算正确?

标签: sqlnorthwind

解决方案


您的第一个join条件不正确:

from Customers c join
     Orders o 
     on c.CustomerID = c.CustomerID
--------^ should be o

推荐阅读