使用不同列中的多个条件将数据集拆分为三分之一



我有一个数据集,它将使用以下规则分为三部分:

  1. 按Open_Rate列排名第一(应返回最高Open_Rate(
  2. 在开放利率相等的情况下,按上次开放利率排序
  3. 在没有最后开放率的情况下,使用注册来确定排名

以下是排名应该如何显示的示例:

Bob 100%打开

账单50%打开,最后一次打开7/31

Connie 50%打开,最后一次打开6/29

Dan 0%开放,已注册8/1

Eddie 0%开放,已注册7/15

然后,数据集应该分成三分之一——上三分之一、中三分之一和下三分之一。

我的问题是把数据集分成三份。我有这个查询来选择前33%并填充一个新表,但我不确定如何选择";中间的";按照相同的标准为33%;下部";34%。

select top 33 percent 
*
from Sends_And_Opens_BySubscriber
order by 
Open_Percentage desc, Last_Open_Date desc, SignUp_Date desc

您可以为;第三个";使用ntile():

select sos.*,
ntile(3) over (order by Open_Percentage desc, Last_Open_Date desc, SignUp_Date desc) as grouping
from Sends_And_Opens_BySubscriber sos;

最新更新