【问题标题】:SQL select logic two tablesSQL选择逻辑两张表
【发布时间】:2020-03-28 05:16:45
【问题描述】:

我有两张桌子

  • 客户(ID、名字、姓氏、地址);
  • 订单(ID、Product_Name、PRICE、Order_Date DATE、Customer_ID、金额);

我必须选择客户的姓氏以及他们的订单数量。

选择请求的输出必须是

SMITH  | 0
GREG   | 2
WATSON | 0
HOLMSE | 2
RUST   | 4
FRINGE | 1
TKACH  | 3

【问题讨论】:

  • 请展示您的尝试。这应该很简单......另外,您希望如何处理两个姓氏相同的客户?
  • 那么问题是什么?您已将此标记为 group-by,因此您似乎已经知道答案,但您没有告诉我们您为解决问题采取了哪些步骤(如果有)。
  • 嘿,不作为评论。改为编辑问题。

标签: sql group-by


【解决方案1】:

您可以使用以下内容,使用 LEFT JOINGROUP BY

SELECT c.Last_Name, COUNT(o.ID)
FROM Customer c LEFT JOIN Orders o ON c.ID = o.Customer_ID 
GROUP BY c.ID

【讨论】:

    【解决方案2】:
    SELECT 
        c.Last_Name, COUNT(o.ID)
    FROM
        Customer c
            LEFT JOIN
        Orders o ON c.ID = o.Customer_ID
    GROUP BY c.Last_Name
    ORDER BY c.Last_Name;
    

    您可以在 Last_Name 列上通过左连接和分组来做到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-13
      相关资源
      最近更新 更多