【问题标题】:SQL Select statement which shows row-specific count information?显示特定行计数信息的 SQL Select 语句?
【发布时间】:2012-11-05 12:45:15
【问题描述】:

我需要一些 SQL 帮助..

假设我有 2 个表:CustomersProducts

现在,我想查看一条显示这两列的 SQL 语句:

Customer  |   Number of orders placed

我该怎么做?

第二列是一个不存在的列,它显示了一个数字,表明该客户下了多少订单。

例如:

Customer  | Number of orders placed
--------  | -----------------------
John      |              23
Jack      |               5
Mary      |              12

等等..

这种选择的 SQL 是什么?

【问题讨论】:

  • 您可能需要为初学者准备另一张桌子。 “订单” - 将客户与产品联系起来的订单

标签: sql select count


【解决方案1】:

我猜 Product 表包含一个引用客户的外键 CustomerID。结果查询将是

select Customers.Name, Count(*)
from   Customers join Products 
       on Customers.CustomerID = Products.CustomerID

但是,这只是一个猜测,因为您忘记告诉我们这两个表之间的关系,即产品如何知道它们属于哪个客户。

还有,但这有点挑剔,你想要订单数量但只有一个“产品”表...

【讨论】:

    【解决方案2】:

    加入。这只是组成您的列名,因为没有给出表格。

       SELECT 
            c.Name,
            myOrders = COUNT(o.id)
       FROM Customers c
       INNER JOIN Orders o
            ON c.id = o.customerId
       GROUP BY c.Name
    

    一些快速阅读:JOINSGROUP BY

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多