SQL - запрос записей в течение неопределенного интервала

Мне нужно получить следующие данные из Orders стол в Northwind база данных с использованием SQL (точнее, SQL Server):

  • Найти всех клиентов (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 |
--------------------------

2 ответа

Решение
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
Другие вопросы по тегам