Bonjour,
Le but est de connaître les n-uplons selon un champ et récupérer un id, le login de l'utilisateur et le nombre :
ou avec cette méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT sub.id, sub.login, sub.nb FROM (SELECT id, login, COUNT(*) OVER(PARTITION BY id) AS nb FROM utilisateur u) AS sub WHERE nb > 1;
Il y a quelques environ 40.000 lignes et 2000 lignes en doublons avec le même id.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 WITH n as ( SELECT id, COUNT(id) AS nb FROM utilisateur u GROUP BY id HAVING COUNT(id) > 1 ) SELECT u.id, u.login, n.nb from UTILISATEUR u JOIN n ON u.id_ref = n.id_ref
Quelle méthode faudrait-il choisir ? J'ai regardé le plan d'exécution qui est différent mais les performances sont proches. La deuxième solution étant un peu plus rapide (5%).
Il existe peut-être une autre solution plus adaptée pour résoudre ce problème.
Merci de vos lumières
Partager