首先,这是分配的一部分。
我正在尝试使用COUNT函数作为与Northwind数据库有关的查询的一部分。查询应返回CustomerID,CompanyName和 为每个相应的客户下的订单数 。
当然,前两部分很简单,但是我无法让COUNT函数正常工作。到目前为止,我的查询是:
SELECT DISTINCT Customers.CustomerID, Customers.CompanyName, COUNT(Customers.CustomerID) FROM Orders, Customers WHERE Customers.CustomerID = Orders.CustomerID;
以这种方式使用COUNT的正确语法是什么?它看起来像:
CompanyID | CompanyName | # of orders 1 | Company A | 4 2 | Company B | 3 3 | Company C | 5
到目前为止,所有示例都单独使用了COUNT函数,而不是更复杂查询的一部分。
您需要一个group by子句,该子句将允许您将结果分成组,并按组执行聚合函数(count在本例中为):
group by
count
SELECT Customers.CustomerID, Customers.CompanyName, COUNT(*) FROM Orders, Customers WHERE Customers.CustomerID = Orders.CustomerID; GROUP BY Customers.CustomerID, Customers.CompanyName
注意:尽管这不是问题的一部分,但是建议您使用显式joins,而不要使用您不赞成使用的隐式联接语法。在这种情况下,查询将类似于:
join
SELECT Customers.CustomerID, Customers.CompanyName, COUNT(*) FROM Orders JOIN Customers ON Customers.CustomerID = Orders.CustomerID; GROUP BY Customers.CustomerID, Customers.CompanyName