一个高难度的MS SQL问题请教各位高手!
现有表test结构如下
No Type Quantity
1 A 21
2 A 20
3 A 13
4 A 15
5 A 14
6 A 17
7 B 11
8 B 21
9 B 26
10 B 22
11 B 37
12 B 29
13 B 28
14 B 16
15 B 36
16 B 25
17 B 13
18 B 12
19 B 20
20 B 31
21 C 21
......
......
要求:
从每个相同类别(Type)的数据中取出几个序号(个数不固定),取出来的序号满足以下几个条件:
1、取出来的序号对应Quantity的和大于或等于此类别所有序号对应Quantity的和的5/1 (即sub_sum(quantity)>=total_sum(quantity)*0.2)
2、没有任何其他的序号组合对应Quantity的和比所取出序号对应Quantity的和(即sub_sum(quantity))更小且满足条件1
3、取出来的序号个数最少
如上表数据,
A类取出的最终结果应该是序号2
B类取出的最终结果应该是序号11,12