Recherche de doublons

1. Doublons de PPN

Voici un exemple de recherche de doublons sur le champ PPN de la table UNIMARC.

select o.DORIS_KEY,o.PPN,COUNT(*)
from UNIMARC o,UNIMARC c
where o.PPN = c.PPN
GROUP BY o.DORIS_KEY,o.PPN
HAVING COUNT(*)>1

Il s'agit d'une jointure de la table sur elle-même : on compare la table originale (o) avec une copie (c).

Voici une requête plus simple permettant de retrouver les doublons en 001 (numéros de notices divers) :

select KEY1,ICOUNT from DLIV_001
where ICOUNT > 1;

Cette requête ne renvoie pas des numéros de notices, mais les valeurs du champ 001 qui apparaissent plusieurs fois dans la base.

2. Doublons de CODE_BARRE

Même type de requête sur le champ CODE_BARRE de la table EXEMPLAIRE

spool doublons_CB.txt
select o.DORIS_KEY,o.CODE_BARRE,COUNT(*)
from EXEMPLAIRE o,EXEMPLAIRE c
where o.CODE_BARRE LIKE c.CODE_BARRE
GROUP BY o.DORIS_KEY,o.CODE_BARRE
HAVING COUNT(*) > 1

Une autre requête, plus simple :

select CODE_BARRE,COUNT(*) from EXEMPLAIRE
GROUP BY CODE_BARRE
HAVING COUNT(*) > 1;

Et dans le même genre, pour connaître les notices bibliographiques liées à plusieurs exemplaires :

select LIVRE,COUNT(*) from EXEMPLAIRE
where LIVRE IN (
170601,135044,173334,173338,169403,169404,169405,169406,169402,169401,146030
)
group by LIVRE HAVING COUNT(*) > 1;

2. Doublons de NUMERO_CARTE dans LECTEUR

select NUMERO_CARTE, COUNT(*) from LECTEUR
group by NUMERO_CARTE having COUNT(*) > 1;