J'ai fait une déclaration de sélection simple qui prend toutes les "profondeurs" où "priorité" = 1. Je veux filtrer le résultat de sorte qu'il me montre tous les trousides est plus de 1 la même profondeur pour le même trou. p> Quelqu'un peut-il aider à Taht? p> p>
4 Réponses :
Vous pouvez faire:
with x as ( select HOLEID, DEPTH, SURVTYPE from HOLESURVEY WHERE PRIORITY = 1 ) select * from x where (HOLEID, DEPTH) in ( select HOLEID, DEPTH from x group by HOLEID, DEPTH having count(*) > 1 )
Vous devez code> groupe par Holeid code> pour obtenir tous les identifiants qui s'appliquent à vos conditions: si vous n'avez besoin que des trousides: p> SELECT HOLEID
FROM HOLESURVEY
WHERE PRIORITY = 1
GROUP BY HOLEID
HAVING COUNT(DISTINCT DEPTH) < COUNT(DEPTH)
En regardant la question, il semble qu'elle n'a pas besoin d'autres colonnes. Juste Holeid code>. En tant que tel, mon interprétation est que votre requête interne suffirait déjà. Nice de vous d'ajouter un moyen d'obtenir les autres colonnes, cependant. +1
Peut-être, mais ceci: Je veux filtrer le résultat de sorte qu'il me montre que tout Holeid ... I> pourrait signifier filtrer les résultats de la 1ère requête. Quoi qu'il en soit, je comprendrai-le dans ma réponse.
Oui, c'est un peu ambigu, je suppose. Quoi qu'il en soit, vous avez déjà mon upvote: D
Je n'ai pas votre contrainte surdepth. Avoir 2 enregistrements avec la même profondeur pour un troleid retournerait vrai (1 <2). N'est-ce pas simplement compter (profondeur distincte)> 1? Votre contrainte signifie Afaik: au moins une profondeur d'appaeurs deux fois ou plus
Chaque troleid peut avoir des profondeurs différentes de Miltiple. Supposons qu'il n'y ait que 2 profondeurs: profondeur1 et profondeur2 chacune n'apparaissant qu'une seule fois. Cela reviendra 2 pour compteur (profondeur distincte) code>, non? Mais vous ne voulez pas ce trouble dans les résultats car les deux profondeurs n'apparaissent qu'une seule fois.
Votre droite, j'ai lu la question comme "plus la seule profondeur différente"
Utiliser l'agrégation. Je pense que vous voulez: Vous pouvez inclure compter (*) code> dans le Sélectionnez code> pour montrer combien de profondeurs correspondent à un trou donné . p> p>
Comme je suppose que vous avez besoin de tels enregistrements qui ont le même nombre holeid et la même profondeur multiple plusieurs fois. et si vous avez besoin de lignes de détail, alors p>
Quelle est la base de données? Oracle, PostgreSQL, Sybase, etc.
Vous avez besoin d'une sous-requête / CTE
Votre question est ambiguë. Veuillez afficher des échantillons de données et une sortie attendue.