Sql 特定天数内已售出产品的计数

Sql 特定天数内已售出产品的计数,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,我陷入了那个问题 CustomerId | EmployeeID | OrderDate| 1 2 2013-01-01 2 2 2013-01-01 2 2 2013-01-02 3 1 2013-02-14 3 2 2013-01-02 4 2

我陷入了那个问题

CustomerId | EmployeeID | OrderDate| 
1              2          2013-01-01  
2              2          2013-01-01
2              2          2013-01-02
3              1          2013-02-14
3              2          2013-01-02
4              2          2013-01-03
5              2          2013-01-04
6              2          2013-01-06  
7              2          2013-01-05 
我不知道该怎么问,但我希望我会尽力 我想了解哪位员工在3天内销售了多少产品
例如:EmployeID 2在

 2013-01-01,2013-01-01 = 1. day (2 sells)
 2013-01-02 = 2.day (2 sell)
 2013-01-03 = 3.day (1 sell)

所以我们可以看到Employe在3天内销售了5种产品。及

 2013-01-04 = 1.day (1 sell)
 2013-01-05 = 2.day (1 sell)
 2013-01-06 = 3.day (1 sell)

Employe在另外3天内又卖出了3台。所以输出表看起来像

EmployeID | SoldProductIn3Days|
  2            5
  2            3

如何在t-sql中查询此问题?

已更改答案以满足注释的要求

DECLARE @MySales AS TABLE
(
 CustomerID INT
,EmployeeID INT
,OrderDate DATE
);

WITH    Sales
      AS ( SELECT OrderDate
               ,EmployeeID
               ,ROW_NUMBER() OVER ( PARTITION BY employeeid ORDER BY OrderDate ) AS RowNum
            FROM @MySales),
    SalesCalc
      AS ( SELECT OrderDate
               ,EmployeeID
               ,CONVERT(INT, Rownum / 3.01) AS MyGrouping
            FROM Sales)
SELECT EmployeeID, MyGrouping, COUNT(*)
    FROM SalesCalc
    GROUP BY EmployeeID, MyGrouping

我使用了表变量来模拟您的表,但只需取出我的表变量并将表放在其中即可。这应该能奏效。当我将RowNumber除以3.1时,前3天的结果是0,0,0,接下来3天的结果是1,1,1,依此类推,最后所有的数据都被分组统计。

哪3天?员工ID
EmployeeID
=1如何?任何3天,员工ID=1只在2013-02-14销售,因此只有1天。我只关心等于3的天数。这3天需要连续吗?是的,因为我想我们只能理解天数是3。您的要求还不清楚。试着一步一步地解释更详细的内容。谢谢你的回答,但是,不,我的问题不是关于这个。然后你澄清你的问题,你到底需要什么?我已经做了,请阅读我问题的评论,你会得到它的。对于任何员工,我需要在任何3天内销售最多的产品。他正在销售一些东西。这应该是您要求的