Ce n'est pas une réponse complète, mais je ne veux pas écrire beaucoup de questions dans les commentaires.
Votre objectif principal est d'envoyer des informations aux gens et d'éviter la situation où une personne reçoit deux fax. Vous avez donc d'abord besoin d'une liste de destinataires uniques, comme ceci :
select distinct otherid
from NR_PVO_120
Si une personne a deux numéros de fax, vous devez décider lequel choisir :
select otherid, fax
from (select otherid, fax, row_number() over (partition by otherid order by <choosing rule>) rn
from NR_PVO_120)
where rn = 1
(Vous avez tout cela dans les réponses à la question précédente)
Si vous prenez cette liste de numéros de fax, tous vos destinataires reçoivent le fax, et un seul fax pour chaque personne. Mais certains numéros de fax ne seront pas utilisés. Vous pouvez facilement les trouver :
select otherid, fax
from (select otherid, fax, row_number() over (partition by otherid order by <choosing rule>) rn
from NR_PVO_120)
where rn > 1
Si vous envoyez un fax à l'un de ces numéros, certaines personnes reçoivent un fax deux fois.
L'anglais n'est pas ma langue maternelle, donc je ne comprends pas ce que vous voulez dire lorsque vous dites "sans diviser les numéros de fax". Comme je peux le voir dans votre question, vous devez peut-être utiliser l'ordre des numéros de fax dans votre question comme priorité de numéro (le numéro le plus élevé est situé dans le tableau - la probabilité la plus élevée de l'utiliser). Il semble que vous puissiez utiliser ce qui suit :
select otherid, fax
from (select otherid, fax, row_number() over (partition by otherid order by row) rn
from NR_PVO_120)
where rn = 1
ici row
dans order by
la clause est une Row
à partir de votre tableau d'exemple.
UPD
P. S. À propos de ma dernière requête :nous avons une table avec un certain ordre, et l'ordre est important. Nous prenons les lignes du tableau ligne par ligne. Prenez la première ligne et mettez son otherid
et fax
au tableau des résultats. Prenez ensuite la rangée suivante. S'il contient un autre fax
numéro et otherid
, nous le prenons, si otherid
déjà dans notre tableau de résultats, nous l'ignorons. Avez-vous demandé cet algorithme ?