J'ai besoin de trouver des valeurs dupliquées sur une table DB Oracle db ayant un dénominateur commun. La table est très grande et contient de nombreuses adresses pour de nombreux pays, en vérifiant quelques-unes des villes que j'ai constatées de nombreuses zones en double (quartiers, districts) dans la même ville, j'ai donc besoin de répertorier toutes les zones en double sous la même ville. (même code postal, etc.).
J'ai déjà essayé de nombreuses questions trouvées sur Stackoverflow, pas encore de succès. p>
Par exemple: P>
SELECT * FROM TABLE1 WHERE SYNONYM = '1' AND STATE = 'ENGLAND' AND DISTRICT IN ( SELECT DISTRICT FROM TABLE1 GROUP BY DISTRICT HAVING COUNT(*) > 1);
3 Réponses :
Voici ce dont vous avez besoin.
SELECT NATION, STATE, CITY, POSTCODE FROM TABLE1 GROUP BY (NATION + STATE + CITY + POSTCODE), NATION, STATE, CITY, POSTCODE HAVING COUNT(NATION + STATE + CITY + POSTCODE) > 1 );
Malheureusement, cela n'a pas fonctionné non plus, vérifié les résultats de vos requêtes manuellement et il n'y a pas de districts en double dans ces villes.
GROUPE directement par ces colonnes et recherchez compteur (*) code> est plus que
1 code>:
Trim () CODE> Fonction pour la colonne Type de chaîne qui peut avoir des espaces de rubrique ou de fuite: p>
SELECT C, D, E, trim(F) as F
FROM TABLE1
GROUP BY C, D, E, trim(F)
HAVING COUNT(*) > 1
Malheureusement, il n'a pas fonctionné, vérifié manuellement des résultats de requête et il n'y a pas de districts en double en leur.
Merci, je l'ai édité un peu et il semble être ce que je cherche! :) Sélectionnez C, D, E, F, Compte (F) de Table1 Group par C, D, E, F Avoir le comptage (*)> 1
Vous êtes la bienvenue @adamh. Avez-vous évalué le nombre (f) de la garniture (F) ..?
Si vous souhaitez que les enregistrements, utilisez les fonctions de la fenêtre: si vous voulez juste que le c code> /
d code> /
/
e code> /
f code> Les valeurs, puis l'agrégation va bien. p> p>
Merci, j'ai aussi essayé cela mais sans chance, je fais peut-être quelque chose de mal. C'est l'erreur que je reçois: ORA-00936: ESPRESSION MANCANTE 00936. 00000 - "Expression manquante" * Cause: * Action:
@Adamh. . . Il n'y a pas d'expression manquante dans cette requête. Voici un dB <> Fiddle qui illustre que le code fonctionne: dbfiddle.uk/.../ a>.
Merci encore pour votre réponse, j'ai essayé à nouveau et le code fonctionne en fait, mais les résultats affichés sont similaires, pas identiques. Je reçois les mêmes noms de district mais ils sont affichés même s'ils sont dans différentes villes, c'est-à-dire nord à Londres, au nord à Manchester. Cela, bien que la ville fait partie de la requête (comme la nation et l'état / la région).