1 votes

Sélection SQL de la ligne entière par colonnes distinctes

J'ai besoin d'une instruction SQL qui me permettra de sélectionner une ligne entière de la base de données Oracle, mais par colonnes distinctes. Voici une base de données simplifiée :

    Project_Num    Title        Category
    0              Project 1    Admin
    0              Project 1    Development
    1              Project 2    Admin
    2              Project 3    Development

J'ai besoin que mon instruction renvoie le jeu de résultats suivant :

0     Project 1    Admin
1     Project 2    Admin
2     Project 3    Development

Ainsi, chaque projet est renvoyé en fonction de la valeur unique de son numéro de projet et de son titre. Si un projet a 2+ entrées où sa catégorie est différente, je dois sélectionner ce projet une seule fois (peu importe quelle entrée je sélectionne pour ce projet).

Est-ce que quelqu'un peut m'aider s'il vous plaît ?

5voto

Bill Karwin Points 204877
SÉLECTIONNER Project_Num, Titre, MIN(Catégorie) AS Catégorie
DE MaTable
GROUP BY Project_Num, Titre;

2voto

Stephen Mesa Points 1450

Avez-vous vraiment besoin d'avoir la colonne Catégorie dans votre ensemble de résultats?

Si ce n'est pas le cas, vous pourriez simplement utiliser:

SÉLECTIONNER DISTINCT Project_Num, Title
DE MyTable

2voto

davesbrain Points 64
SÉLECTIONNER *
DE (SÉLECTIONNER DISTINCT VotreChampDistinct DE VotreTable) COMME A
APPLIQUER EN CONJOINTE 
( SÉLECTIONNER TOP 1 * DE VotreTable B 
  OÙ B.VotreChampDistinct = A.VotreChampDistinct ) COMME NouveauNomTable

J'ai essayé de résoudre cela pendant des heures maintenant, j'ai essayé de nombreuses solutions qui n'ont pas fonctionné et j'ai finalement réussi en recherchant "joindre top 1" et en adaptant cette solution que j'ai trouvée à une recherche distincte.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X