小编典典

在SQL中使用COUNT函数

sql

首先,这是分配的一部分。

我正在尝试使用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函数,而不是更复杂查询的一部分。


阅读 202

收藏
2021-04-14

共1个答案

小编典典

您需要一个group by子句,该子句将允许您将结果分成组,并按组执行聚合函数(count在本例中为):

SELECT   Customers.CustomerID, Customers.CompanyName, COUNT(*)
FROM     Orders, Customers
WHERE    Customers.CustomerID = Orders.CustomerID;
GROUP BY Customers.CustomerID, Customers.CompanyName

注意:尽管这不是问题的一部分,但是建议您使用显式joins,而不要使用您不赞成使用的隐式联接语法。在这种情况下,查询将类似于:

SELECT   Customers.CustomerID, Customers.CompanyName, COUNT(*)
FROM     Orders
JOIN     Customers ON Customers.CustomerID = Orders.CustomerID;
GROUP BY Customers.CustomerID, Customers.CompanyName
2021-04-14