【问题标题】:I need to make a sql我需要做一个sql
【发布时间】:2020-05-31 15:11:32
【问题描述】:

**

SELECT clientName, orderID FROM
Orders INNER JOIN clients ON orders.clientID = clients.clientID;

**

我可以展示每个客户和他们的每个订单。帮我改正我的 SQL 语法,这样我就可以显示每个客户的订单数了吗?

我还希望我的结果按客户名称的字母顺序排列,

请为我写一个新的 SQL 语法!

【问题讨论】:

  • 提示:GROUP BYCOUNT().

标签: sql syntax client


【解决方案1】:

选择客户名称,COUNT(*) FROM Orders INNER JOIN clients ON orders.clientID = clients.clientID 按客户名称分组 按客户名称订购

【讨论】:

    【解决方案2】:

    你可以使用聚合:

    select c.clientName, count(*) no_orders
    from clients c
    inner join orders o on o.clientID = c.clientID
    group by c.clientID, c.clientName
    

    注意事项:

    • 表别名使查询更易读写

    • 将客户端的 id 添加到 group by 子句处理不同客户端可能具有相同名称的可能性

    • 一般来说,您希望避免使用驼峰式大小写标识符 (ClientName) 并改用蛇形大小写 (client_name):从数据库的角度来看,标识符不区分大小写(除非引用)

      李>

    【讨论】:

    • o 和 c 是干什么用的?
    • 为什么即使我想按订单制作也没有订单?
    • @userman:这些是表别名,如我的回答中所述。而no_orders 是一个列别名,代表订单数
    猜你喜欢
    • 1970-01-01
    • 2014-07-06
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 2016-07-06
    • 2015-11-24
    • 2019-12-23
    相关资源
    最近更新 更多