Je dois filtrer une requête SQL en fonction du nombre d'enregistrements dans cette requête. p>
Je veux que la requête ne renvoie que les lignes où le nombre de "emplacement" est supérieur à 5. p>
Par exemple, nous avons 100 rangées de données. 10 "emplacements" constituent les 100 lignes, mais je veux seulement les lignes où le J'ai essayé des combinaisons d'agrégation et de la clause comptent ("emplacement")> 5 code>, éliminant essentiellement les lignes avec des emplacements où le comptage ("emplacement" ) <5 code>. P>
code> mais ne peut pas abattre la réponse. P>
3 Réponses :
Je pense que vous voulez une fonction de fenêtre:
Merci. Ceci est exactement ce que je cherchais.
Réponse alternative de Gordon Linoff à l'aide de CTE:
with CTE as( select *, count(*) over (partition by Location) as count from table ) select *from CTE where count >= 5
Voici la solution que vous avez peut-être suivie après l'utilisation de la clause ...
select t.*
from t
inner join
(
select Location, count(*) as Count
from t
group by Location
having count(*) >= 5
) as t2 on t.Location = t2.Location
order by t.ID
Avoir devrait le faire. Veuillez mettre un exemple de données et de requêtes sur sqlfiddle.com