0
votes

Sélectionnez des valeurs à partir d'une sélection

J'ai fait une déclaration de sélection simple qui prend toutes les "profondeurs" où "priorité" = 1. xxx

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.

Quelqu'un peut-il aider à Taht?

sql

3 commentaires

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.


4 Réponses :


1
votes

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
)


0 commentaires

1
votes

Vous devez code> groupe par Holeid code> pour obtenir tous les identifiants qui s'appliquent à vos conditions: xxx pré>

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)


6 commentaires

En regardant la question, il semble qu'elle n'a pas besoin d'autres colonnes. Juste Holeid . 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 ... 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) , 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"



1
votes

Utiliser l'agrégation. Je pense que vous voulez: xxx

Vous pouvez inclure compter (*) dans le Sélectionnez pour montrer combien de profondeurs correspondent à un trou donné .


0 commentaires

0
votes

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. xxx

et si vous avez besoin de lignes de détail, alors xxx


0 commentaires