J'écris une requête dans SQL Server2005. Cela me renvoie un doublon dans le résultat. Puis-je éliminer cette duplication avec une colonne particulière comme clé?Résultat en double
Répondre
Vous pouvez éliminer les lignes dupliquées complètes à l'aide du mot clé DISTINCT. S'il existe une colonne de clé qui est un doublon mais que le reste des colonnes ne l'est pas, vous devez alors utiliser des fonctions d'agrégation et une clause GROUP BY pour expliquer à SQL Server les données que vous voulez renvoyer.
Il est possible que votre résultat contienne à la fois un tableau associatif et un tableau numérique. SELECT DISTINCT élimine les doublons.
Si vous voulez juste une colonne:
SELECT DISTINCT MyColumn FROM MyTable;
Si vous voulez une variété de colonnes, de retour peut-être un maximum ou d'une somme, essayez le groupant:
SELECT MyFirstColumn, MySecondColumn, MAX(SomeDate) AS MaxDate, SUM(Amount) AS TotalAmount
FROM MyTable
GROUP BY MyFirstColumn, MySecondColumn;
Vous pouvez utiliser SELECT DISTINCT
pour éliminer les doublons, comme cela a été conseillé dans d'autres commentaires, et cela peut fonctionner assez bien pour l'instant, mais vous pouvez supplier pour des problèmes futurs. Trop souvent, si vous ne pouvez pas obtenir un résultat unique sans SELECT DISTINCT
, votre modèle de base de données a été dénormalisé trop loin, et vos requêtes peuvent s'enliser en récupérant puis en éliminant un grand nombre de doublons. (Cependant, normaliser un schéma de base de données existant est rarement trivial ...)
Sans plus d'informations sur le schéma et la requête, il est impossible de dire si SELECT DISTINCT
est une solution de contournement acceptable ou s'il existe simplement une meilleure jointure déclaration.
Comme vous l'avez souligné dans les commentaires, vous utilisez une procédure stockée. Une façon de gérer ce cas consiste à créer une table temporaire que vous remplissez à l'aide de la procédure stockée. Sélectionnez ensuite les résultats de la table temporaire et éliminez les doublons avec SELECT DISTINCT ou GROUP BY.
- 1. Lignes en double dans Oracle
- 2. résultat possible en C#
- 3. WebClient.UploadValues Clé en double
- 4. Envoi double en C#?
- 5. double $ déclaration en php
- 6. Recherche d'applications iPhone en double
- 7. Gestion des téléchargements en double
- 8. XSLT: Fusion scénario en double
- 9. Retirez-tête en double xml
- 10. double abonnements d'événements en C#
- 11. Variables en double dans JavaScript
- 12. supprimer les lignes en double
- 13. SEO et URL en double
- 14. Javascript en PDF double valeurs
- 15. Grails erreur en double Messages
- 16. Comment supprimer des nœuds XML en double en utilisant XSLT
- 17. doutes en chambre double pointeur en C
- 18. Erreurs de double-métaphone
- 19. Site Ping et retour résultat en PHP
- 20. Java: conversion d'un double en chaîne
- 21. Détection/hachage de texte en double
- 22. Gestion des objets en double dans Javascript
- 23. Conversion de tableau double en tableau IComparable
- 24. Conversion de Double en chiffres et exposant
- 25. Suppression de lignes en double dans vi?
- 26. Linq2SQL et les enregistrements en double
- 27. Empêcher double Entrée en Hashtable C++
- 28. Double If Else problème en C#
- 29. MySQL - trouver des tuples en double
- 30. Cartographie en double classe/entité Erreur
Plusieurs colonnes avec distinctes devraient également convenir. Tant que les opérations globales ne sont pas nécessaires. –
mais serai-je capable de faire un groupby sur les résultats d'une exécution de procédure stockée? comme exec sp_depends tbl_control_quarterly_milestone – Vinodtiru