【发布时间】:2018-05-26 21:43:41
【问题描述】:
我有一个包含大约 800k 行的项目表。我需要创建一个 SQL 语句,允许我的用户传入各种百分比,这些百分比总计为 100%,并且限制为 5 个百分比。然后这些用于按每个百分比的组数对行进行分组。
例如,用户可以请求使用以下随机百分比拆分行(用户决定百分比):
1. 20%, 20%, 30%, 30%
2. 12%, 12%, 12%, 12%, 52%
3. 30%, 30%, 40%
4. 100%
根据上述百分比,我需要返回以下内容:
Field 1 | Field 2 | Group
--------------------------------
Data | Data | 1
Data | Data | 1
该组将代表一个与百分比相对应的数字。因此,例如上面的百分比 #1,将有 4 个组,第一组的记录是所有选定项目的第 20%,第 2 组是接下来的 20%,第 3 组是接下来的 30%,第 4 组是最后的 30%。因此,如果总共有 200 条记录,那么第 1 组应该有 40 条记录,第 2 组有 40 条,第 3 组有 60 条,第 4 组有 60 条。
对不起,如果我解释过度了,但试图减少我的问题中的任何歧义,所以很清楚。
此数据存储在 Azure SQL 中,因此提供的任何解决方案都可以使用 Azure SQL 和/或 SQL 2016(在大多数情况下)提供的任何内容。
在此先感谢 SQL 天才,他们肯定会让我同时感到感激和自卑! :)
【问题讨论】:
标签: sql azure azure-sql-database