Sql server 仅当出现的次数超过X次时才选择

Sql server 仅当出现的次数超过X次时才选择,sql-server,tsql,Sql Server,Tsql,我的数据是这样的: Client Number | Order Date | Order Amount | Sequence (created with Row_Number()) 我已经用Row_Number()创建了一个序列,因此我可以看到一个客户机有多少订单 如果我使用WHERE Sequence>3,我将丢失3之前的订单。我不能用有,因为我需要看每一份订单。如何选择订单超过3个的客户编号 我想看看: Client Number | Order Date | Order Amount |

我的数据是这样的:

Client Number | Order Date | Order Amount | Sequence (created with Row_Number())
我已经用Row_Number()创建了一个序列,因此我可以看到一个客户机有多少订单

如果我使用WHERE Sequence>3,我将丢失3之前的订单。我不能用有,因为我需要看每一份订单。如何选择订单超过3个的客户编号

我想看看:

Client Number | Order Date | Order Amount | Sequence
1111             Jan 01      100             1
1111             Jan 02      100             2
1111             Jan 03      100             3
1112             Jan 01      100             1
1112             ...         ...             ...
1112             Jan 20      100             20

因此,只有那些序列高于3的人,同时仍然保持序列1和序列2的序列。

这很容易。。。非常感谢你!
SELECT *
  FROM data
 WHERE ClientNumber IN 
 (
   SELECT ClientNumber
     FROM data
   GROUP BY ClientNumber
   HAVING COUNT(1) >= 3
 );
create table #test(clientnumber int, orderdate datetime, orderamount int)

insert into #test values
(1110, '01/01/2016', 100),
(1110, '01/02/2016', 100),
(1111, '01/01/2016', 100),
(1111, '01/02/2016', 100),
(1111, '01/03/2016', 100),
(1112, '01/01/2016', 100),
(1112, '01/02/2016', 100),
(1112, '01/03/2016', 100),
(1112, '01/04/2016', 100);

with cte as(
select clientnumber, orderdate, orderamount,
count(*) over(partition by clientnumber ) as ran
from #test)
select * from cte
where ran >= 3