SQL: Comment filtrer après l'agrégation?

Il est très facile de supprimer des valeurs que vous ne voulez pas agrégés.

Par exemple:

SELECT department, SUM(sales) as "Total sales"
FROM order_details
GROUP BY department
HAVING SUM(sales) > 1000;

Qui exclut toutes les ventes d'une valeur de moins de 1000 à partir de la synthèse de l'agrégation.

Mais comment voulez-vous du filtre après l'agrégation?

E. g. WHERE ("Total sales"> 15000)

Edit: Ironie du sort, j'étais seulement, y compris HAVING SUM(sales) > 1000; afin d'éviter toute confusion sur le type de requête nécessaire; parce que je ne suis pas vraiment intéressé à l'exclusion des articles à partir de la sommation, juste les résultats retournés! Merci, en dépit de la confusion!

  • pouvez-vous donner des exemples d'enregistrements? Votre problème est simple, mais vous êtes déclaration est source de confusion.
  • Ne pas comprendre votre question. Vous êtes déjà fait ce que vous demandez. Vous filtre de requête de tout le département avec une agrégation de moins de 1000. Pouvez-vous reformuler?
  • Pour dire les choses autrement: un filtrage des valeurs renvoyées. La requête va exclure des résultats moins que X. Probablement la plus efficace des façons d'aller à ce sujet car il semble un peu du gaspillage de faire le calcul qui sera par la suite être exclus.
InformationsquelleAutor Stumbler | 2013-04-02