SQL - 在连接两个表时无法执行不同的计数

时间:2017-09-30 15:50:25

标签: sql left-join distinct

我有两个表:客户和订单。我在CustomerID列上进行了客户和订单的左连接,这是客户中的主键和订单中的外键。

  1. 当我在加入后列出CustomerID时,我按预期获得列表。
  2. 当我计算CustomerID的数量时,我再次得到我期待的记录数。
  3. 当我对CustomerID使用非重复计数时,我收到错误。
  4. 1

    select  Customers.CustomerID as list
    from Customers left join Orders on Customers.CustomerID = Orders.CustomerID
    where Customers.CustomerID = 4;
    

    2

    select  count(Customers.CustomerID) as numRecord
    from Customers left join Orders on Customers.CustomerID = Orders.CustomerID
    where Customers.CustomerID = 4;
    

    3

    select  count(distinct (Customers.CustomerID)) as numRecord
    from Customers left join Orders on Customers.CustomerID = Orders.CustomerID
    where Customers.CustomerID = 4;
    

    我无法理解错误在哪里。任何帮助,将不胜感激。 错误:

    Error in SQL:
    Syntax error (missing operator) in query expression 'count(distinct Customers.CustomerID)'.
    

1 个答案:

答案 0 :(得分:1)

您不需要count(distinct ..)

中的Customers.CustomerID周围的()
select  count(distinct Customers.CustomerID) as numRecord
from Customers 
left join Orders on Customers.CustomerID = Orders.CustomerID
where Customers.CustomerID = 4;
相关问题