【发布时间】:2016-03-05 18:50:47
【问题描述】:
我在 Windows 7 上使用 MS SQL Server 2014。
在数据库中,我有一个名为Orders 的表,如下所示:
OrderID | CustomerID | OrderDate | ...
----------------------------------------
1028 90 2015-10-10
...
2416 68 2016-02-12
我需要两件事:
- 客户总数
- 今年的客户数量。
我是 SQL 的初学者,但我设法在我的应用程序中编写了 2 个似乎可以完成这项工作的 SQL 语句:
对于要求 #1
SELECT COUNT(DISTINCT CustomerID) FROM Orders; // result = 74
对于要求 2:
SELECT COUNT(DISTINCT CustomerID) FROM Orders WHERE OrderDate >= '2016-01-01'; // result = 34
我想知道是否可以将上述 2 个 SQL 语句以某种方式合并/组合成一个查询...?当然,我需要两个结果:客户总数(上述情况下为 74 个)和今年的客户(即 34 个)。
该数据库是一个远程数据库,因此非常欢迎任何提高查询性能的想法:)
【问题讨论】:
-
如果您的问题是关于 SQL Server 2014,为什么要标记 mysql 和 sql-server-ce?我已经删除了它们。
-
呵呵,mysql是
suggested tag,sql-server-ce是其他用户添加的。感谢编辑。 -
我们有 2 个答案(目前),见下文。我测试了两者,两者都工作正常。哪个更快还是差不多?
标签: sql sql-server performance database-performance processing-efficiency