我最近在这里发布了一个关于 SQL Where 语句/分组的问题:
使用来自 GROUP 或 RANK 的 WHERE 的 SQL 语句
现在我有了一些跟进。
与上一个问题类似,假设我有一个包含 35,000 行的表,其中包含这些列:
销售代表 | 父帐户 ID| 帐号 | 合同总价值 | 日期
每行都按帐户 ID 单独显示,但多个帐户 ID 可以属于一个父帐户 ID。
与第一个问题的回答类似,这可能是一个带有表格的表格。因此,首先,所有内容都必须按销售代表分组。从那以后,所有内容都需要按父帐户 ID 分组,其中所有帐户的分组总合同价值 >= 10,000。然后所有内容都将显示并按父帐户 ID 的总 TCV 排名,我需要代理的前 35 个父帐户 ID。
所以前几行数据可能如下所示:
销售代表 | 父帐户 ID| 帐号 | 合同总价值 | 日期 | 秩 约翰·多伊 | 父ABC12345 | ABC425 | 5,000 | 2013 年 1 月 2 日 |1 约翰·多伊 | 父ABC12345 | ABC426 | 10,000 | 2013 年 1 月 2 日 |1 约翰·多伊 | 家长DJE12345 | DJE523 | 11,000 | 2013 年 1 月 2 日 |2 约翰·多伊 | 父FBC12345 | FBC6723 | 4,000 | 2013 年 1 月 2 日 |3 约翰·多伊 | 父FBC12345 | FBC6727 | 4,000 | 2013 年 1 月 2 日 |3
请注意排名是如何根据父帐户 ID 进行的。帐户 ID DJE523 具有最大的单个 TCV,但它排名第二,因为父帐户 ID ParentABC12345 的分组值更大。因此会有 35 个父帐户 ID 的排名,但在该排名中,它们可能是 100 多行实际数据。
有什么想法吗?