SQL - 连接两个表时无法执行不同的计数
Posted
技术标签:
【中文标题】SQL - 连接两个表时无法执行不同的计数【英文标题】:SQL - cannot perform distinct count when joining two tables 【发布时间】:2017-09-30 15:50:24 【问题描述】:我有两个表:Customers 和 Orders。我在 CustomerID 列上对客户和订单进行左连接,该列是客户的主键和订单的外键。
-
当我在加入后列出 CustomerID 时,我得到了预期的列表。
当我计算 CustomerID 的数量时,我再次得到了我期望的记录数。
当我对 CustomerID 使用不同计数时,我得到一个错误。
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)'.
【问题讨论】:
您使用的是哪个数据库? 我只是在这个链接上运行查询:w3schools.com/sql/trysql.asp?filename=trysql_select_join_inner 【参考方案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;
【讨论】:
即使没有(),也会有错误。我把() 用来检查是否有错误 请检查错误。该数据库来自 www.w3schools.com。数据库链接为:w3schools.com/sql/trysql.asp?filename=trysql_select_join_inner 我刚刚尝试过工作......返回(显然)1......你可能需要在重置浏览器时清除缓存.. 它在 Firefox 中不起作用,但在 Chrome 中起作用。谢谢以上是关于SQL - 连接两个表时无法执行不同的计数的主要内容,如果未能解决你的问题,请参考以下文章