SQL - 一个未定义的区间内查询记录
问题描述:
我需要使用SQL(SQL Server来准确)从Orders
表得到Northwind
数据库中的以下数据:SQL - 一个未定义的区间内查询记录
- 找到所有的客户(
CustomerID
)谁把至少 内的3个订单的间隔为6个月(OrderDate
)。
因此以下数据的查询应返回1
==========================
| CustomerID | OrderDate |
==========================
| 1 | 2000-1-1 |
--------------------------
| 1 | 2000-1-5 |
--------------------------
| 1 | 2000-4-30 |
--------------------------
| 2 | 2000-1-1 |
--------------------------
| 2 | 2000-5-30 |
--------------------------
答
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
答
尝试以下操作:
SELECT OrderDate, CustomerID FROM orders GROUP BY OrderDate HAVING COUNT(CustomerID) >= 3 ORDER BY COUNT(CustomerID) DESC
+1
您的回答不正确,对象是列出在6个月的时间间隔(OrderDate)内至少放置了3个订单的所有客户(CustomerID)。 –
是什么?你试试? –
尝试此: SELECT N1.CustomerID,COUNT(N2.OrderDate)FROM罗斯文N1 INNER JOIN罗斯文N2 ON N1.CustomerID = N2.CustomerID AND N1.OrderDate = 3 –