Je dois trouver enregistrement en double (avec l'identifiant d'enregistrement maître et en double ids record):Comment sélectionner à la fois row_number et count over partition?
select ciid, name from (
select ciid, name, row_number() over (
partition by related_id, name order by updatedate desc) rn
) where rn = 1;
Cela me donne les ID d'enregistrement maître, mais il comprend aussi des enregistrements sans doublons.
Si je
select ciid, name from (
select ciid, name, row_number() over (
partition by related_id, name order by updatedate desc) rn
) where rn > 1;
Cela me reçoit tous les enregistrements en double, mais pas l'enregistrement maître.
Je souhaitais si je fais quelque chose comme:
select ciid, name from (
select ciid, name, row_number() over (
partition by related_id, name order by updatedate desc
) rn, count(*) over (
partition by related_id, name order by updatedate desc
) cnt
) where rn = 1 and cnt > 1;
Mais j'étais inquiet au sujet de la performance, ou même est en train de faire ce que je veux.
Comment puis-je obtenir la fiche uniquement pour les doublons? Veuillez noter que name
n'est pas une colonne unique. Seul ciid
est unique.
Il ne retourne rien ... Est-ce que 'distinct rn' fonctionne? On dirait que rn est différent pour chaque ligne de la partition. – texasbruce
Group By CIID ne retournera rien ... CIID est unique ... – texasbruce
Est-ce que la partie éditée ne marche pas? juste pour trouver des doublons? –