У меня есть таблица предметов с 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%, третья группа - следующие 30%, а четвертая группа -последние 30%.Следовательно, если было всего 200 записей, в группе 1 должно быть 40 записей, в группе 2 - 40, в группе 3 - 60, а в группе 4 - 60.
Извините, если я перестаю объяснять это, но пытаюсьчтобы уменьшить двусмысленность в моем вопросе, чтобы было понятно.
Эти данные хранятся в Azure SQL, поэтому любое предоставленное решение может использовать все, что предлагает Azure SQL и / или SQL 2016 (в большинстве случаев).
Заранее спасибо гениям SQL, чтообязательно, чтобы заставить меня чувствовать себя благодарным и неполноценным одновременно!:)