1

我有一个表格,其中包含与以下类似的数据:

Agent | TCV | Parent AccountID | AccountID | Month
------+-----+------------------+-----------+--------
John  | 100 | ABC12345         | Sept13445 | 2
John  | 200 | ABC12345         | Sept345   | 2 
John  | 150 | CDE12345         | Sept546   | 2
John  | 200 | FTE1456          | Oct3467   | 2
John  | 100 | ABC12345         | Sept13445 | 3
John  | 200 | ABC12345         | Sept345   | 3 
John  | 150 | CDE12345         | Sept546   | 3
John  | 200 | FTE1456          | Oct3467   | 3

我需要的是一种按代理显示分组排名的方法,然后是每个代理每个月的父 accounrDID。这个想法是,在导出中,将有一列用于代理、TCV、parentaccountDID 和月份。

因此,如果所有代理都有 10 个 parentaccountDID(但每个代理下可能有多个 accountDID),它将根据 parentAccountDID 的分组 TCV 对它们进行排名。因此,John 的 10 个 parentaccountDID 基于第 2 个月的分组 TCV 有 10 行数据,然后是第 3 个月基于分组 TCV 的 10 个 parentaccountDID 的 10 行数据,等等。

4

2 回答 2

0

如果您有 Oracle SQL 数据库,请尝试以下查询,它可能会根据需要对您有所帮助:

select Agent ,TCV ,ParentAccountID,Month,count(1) from table group by  Agent ,TCV ,ParentAccountID,Month
order by 5 desc

你也可以检查(谷歌)“密集排名”功能如下:

select Agent ,TCV ,ParentAccountID,Month,dense rank over(Agent ,TCV ,ParentAccountID,Month) from table group by  Agent ,TCV ,ParentAccountID,Month

它对值进行排名并对结果进行排序。

于 2013-03-08T17:24:19.020 回答
0
SELECT agent, tcv, parent_accnt_id, accnt_id, curr_month
     , ROW_NUMBER() OVER (PARTITION BY curr_month, parent_accnt_id ORDER BY curr_month) rnk 
 FROM your_table
/

使用您的数据,您将得到:

AGENT    TCV    PARENT_ACCNT_ID    ACCNT_ID    CURR_MONTH    RNK
------------------------------------------------------------------
John     100    ABC12345           Sept13445     2            1
John     200    ABC12345           Sept345       2            2
John     150    CDE12345           Sept546       2            1
John     200    FTE1456            Oct3467       2            1
John     100    ABC12345           Sept13445     3            1
John     200    ABC12345           Sept345       3            2
John     150    CDE12345           Sept546       3            1
John     200    FTE1456            Oct3467       3            1
于 2013-03-08T17:29:35.337 回答