0
votes

Filtrage de la requête SQL sur le nombre d'une colonne

Je dois filtrer une requête SQL en fonction du nombre d'enregistrements dans cette requête.

Je veux que la requête ne renvoie que les lignes où le nombre de "emplacement" est supérieur à 5.

Par exemple, nous avons 100 rangées de données. 10 "emplacements" constituent les 100 lignes, mais je veux seulement les lignes où le comptent ("emplacement")> 5 , éliminant essentiellement les lignes avec des emplacements où le comptage ("emplacement" ) <5 .

J'ai essayé des combinaisons d'agrégation et de la clause mais ne peut pas abattre la réponse.


1 commentaires

Avoir devrait le faire. Veuillez mettre un exemple de données et de requêtes sur sqlfiddle.com


3 Réponses :


2
votes

Je pense que vous voulez une fonction de fenêtre: xxx


1 commentaires

Merci. Ceci est exactement ce que je cherchais.



0
votes

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


0 commentaires

0
votes

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


0 commentaires