Select distinct et non-valeurs distinctes de colonne
Je veux exécuter une requête qui élimine les doublons sur la base des valeurs de colA et colb ne.
Cependant, j'ai encore envie de retourner la valeur de colC et le froid.
Voici un exemple simple de ce que j'ai à ce jour:
SELECT DISTINCT colA, colB ?colC, colD?
FROM TABLE1
ou
SELECT colA, colB ?colC, colD?
FROM TABLE1
GROUP BY colA, colB
Soit la méthode ne me permet pas de revenir colC, et le froid, à moins que je vérifier que les valeurs distinctes ou d'un groupe, comme le colA et colb ne. Je ne veux pas faire cela, seulement colA et colb ne ensemble doivent être distinctes de ne pas colC et le froid. Je veux juste retourner.
Des idées sur comment je peux faire cela?
En supposant qu'il y a plusieurs lignes dans
Pouvez-vous poster quelques données de l'échantillon et le résultat souhaité?
Pouvez-vous élaborer un peu plus sur la façon dont je voudrais utiliser "premier" et "dernier"? Je crois que je voudrais toujours la première valeur. Comment pourrait-il regarder avec mon exemple?
et "dernier" s'appuie sur une certaine façon d'ordonner les données. Si il y a deux lignes dans
table1
avec un ensemble particulier de valeurs pour colA
et colB
, le jeu de colC
et colD
valeurs voulez-vous de retour? Les valeurs minimales? Les valeurs maximales? Le "premier" ou "dernier" des valeurs (dans le cas où vous auriez besoin de nous dire comment faire pour commander des données, de sorte que le "premier" et "dernier" sont significatives)?Pouvez-vous poster quelques données de l'échantillon et le résultat souhaité?
Pouvez-vous élaborer un peu plus sur la façon dont je voudrais utiliser "premier" et "dernier"? Je crois que je voudrais toujours la première valeur. Comment pourrait-il regarder avec mon exemple?
et "dernier" s'appuie sur une certaine façon d'ordonner les données. Si il y a deux lignes dans
table1
à l'identique colA
et colB
valeurs, comment savez-vous qui est la "première ligne"? Est-il une colonne supplémentaire (timestamp, par exemple, ou de plus en plus monotone table1_id
)?OriginalL'auteur Baxter | 2013-02-25
Vous devez vous connecter pour publier un commentaire.
Voulez-vous
list_agg
?Si une valeur arbitraire pour ColC et le froid, vous pouvez utiliser
min()
:La Solution fonctionne très bien, merci.
OriginalL'auteur Gordon Linoff
DISTINCT s'applique à toutes les valeurs que vous sélectionnez, non pas seulement pour certaines colonnes. Dans votre cas, il s'appliquera à tous: colA, colb ne, colC, le froid. Il est impossible de sélectionner toutes les colonnes et faire quelques distinctes et d'autres non. La seule façon de le faire démontré dans de Gordon exemple, c'est le seul exemple valable et la réponse.
OriginalL'auteur Art
Peut-être utiliser simplement de l'ensemble des opérations de
de l'UNION et UNION ALL
(voir http://docs.oracle.com/cd/B19306_01/server.102/b14200/queries004.htm)
UNION colA et colb ne permettra d'éliminer doublé entrées dans ces colonnes alors que l'UNION de TOUS permettra de conserver toutes les valeurs de la colC et froid
OriginalL'auteur omilke