0

我需要使用 SQL(准确地说是 SQL Server)从数据库中的Orders表中获取以下数据:Northwind

  • 查找CustomerID在 6 个月 ( ) 间隔内至少下过 3 次订单的所有客户 ( OrderDate)。

因此,对于以下数据,查询应返回1

==========================
| CustomerID | OrderDate |
==========================
|      1     | 2000-1-1  |
--------------------------
|      1     | 2000-1-5  |
--------------------------
|      1     | 2000-4-30 |
--------------------------
|      2     | 2000-1-1  |
--------------------------
|      2     | 2000-5-30 |
--------------------------
4

2 回答 2

1
SELECT N1.CustomerID, COUNT(N2.OrderDate)  FROM Northwind N1
INNER JOIN Northwind N2
ON N1.CustomerID=N2.CustomerID
AND N1.OrderDate<=Dateadd(MONTH, 6, N2.OrderDate)
GROUP BY N1.CustomerID
HAVING COUNT(N2.OrderDate)>=3
于 2016-01-22T13:17:32.900 回答
-1

尝试以下操作:

SELECT OrderDate, CustomerID FROM orders GROUP BY OrderDate HAVING   COUNT(CustomerID) >= 3 ORDER BY COUNT(CustomerID) DESC
于 2016-01-22T13:24:44.663 回答