难题:取PARTITION分组中第一个,但第一个必须是匹配度最高的那组中的
dzang 2019-03-17 01:25:12 标题略过,实例如下:
对A,B,C,D,E这5个小组中的男女同学进行匹配,
匹配条件要求身高相同,
——而难点在于,这匹配要求最少的位移成本——
即:
如果小组A中的女同学,跟C,D,E组的男同学都有可匹配的,
C组可配的2男;
D组可配的10男;
E组可配的6男;
那我们希望,A组先尽量跟D组的配对,配完D组后,再跟E组配,最后若还有剩的,才跟C组配,
伪代码如下:
SELECT 男ID
,ROW_NUMBER() OVER ( PARTITION BY ............ ORDER BY [可匹配数最多的组优先参与] )myNum
............
WHERE myNum = 1
请教高手,如何是实现?