Boy*_*mba 3 sql sql-server reporting-services
我在SSRS中创建了一个表,其中包含第1列中的客户名称及其在第2列中的相应订单数.此查询适用于我正在尝试完成的任务,但我不确切知道Count函数如何知道什么我希望它能算什么,以及我希望它能从中得到什么样的表.有人可以向我解释一下这样我以后可以更好地理解吗?万分感谢.
SELECT Customers.name
,Count(1) AS OrderCount
FROM Customers
INNER JOIN Orders
ON Customers.id = Orders.customer_id
GROUP BY Customers.name
Run Code Online (Sandbox Code Playgroud)
我不知道Count函数到底知道我想要它的重要性
只有一两件事,COUNT就可以计算-它可以指望行中表达式计算为一个非空值.如果您COUNT(1)在常规查询中使用,则会获得1每一行.有了GROUP BY,但是,COUNT将返回的行数的特定组.在您的情况下,这将是具有相同的行数Customers.name,因为这是您使用的GROUP BY.
至于传递1到COUNT推移,一个比较普遍的做法,这些天是传递一个星号,即写COUNT(*),因为在大多数RDBMS引擎存在的,没有性能损失.