Il est possible d'avoir une clause where après AVOIR clause?
Est-il possible d'utiliser une clause where après AVOIR clause?
La première chose qui me vient à l'esprit est sous-requêtes, mais je ne suis pas sûr.
P. S. Si la réponse est affirmative, pourriez-vous nous donner quelques exemples?
Est-ce une astuce/question d'entrevue, ou vous avez un réel problème à résoudre?
Oui. La question est d'une interview.
Oui. La question est d'une interview.
OriginalL'auteur cc. | 2009-11-04
Vous devez vous connecter pour publier un commentaire.
Non, pas dans la même requête.
La
where
clause de passe avant lahaving
et lagroup by
. Si vous souhaitez filtrer des enregistrements avant le regroupement de l'état passe dans lewhere
clause, et si vous souhaitez filtrer les enregistrements regroupés de l'état va dans lehaving
clause:Si aucune de ces sont possibles à utiliser pour une raison étrange, vous avez à faire la requête d'une sous-requête, de sorte que vous pouvez mettre la
where
clause dans la requête externe:OriginalL'auteur Guffa
Si c'est une question piège, c'est possible si le lieu et le DEVOIR ne sont pas au même niveau, comme vous l'avez dit, avec une sous-requête.
Je suppose que quelque chose comme ça pourrait fonctionner
p.s.: pourquoi me demandez-vous?
Avez-vous un problème spécifique?
p.s.s: OK, je suis bête, j'ai raté le "interview*" tag...
OriginalL'auteur pascal
Une clause HAVING est juste une clause where, après qu'un GROUPE PAR. Pourquoi ne pas mettre votre OÙ les conditions de la clause HAVING?
Sur le plan conceptuel, la clause HAVING est appliquée après que le GROUPE de l'opération, tandis que la clause where est appliqué avant, donc, théoriquement, il pourrait y avoir d'optimisation par "filtrage" dans la clause where. Dans la pratique, vous (comme toujours) examiner de plus près comment l'optimiseur gère par exemple, examiner le plan d'exécution. Également considérer l'humain lecteur, qui pourrait normalement s'attendre à voir "filtrage" fondée dans la clause where (plutôt que les clauses join, HAVING, etc).
OriginalL'auteur Nestor
De SÉLECTIONNER les aider
Donc, non, vous ne pouvez pas.
OriginalL'auteur Adriaan Stander
Au sein de la même portée, la réponse est non. Si les sous-requêtes est autorisé, alors vous pouvez éviter d'utiliser
HAVING
entièrement.Je pense que
HAVING
est un anachronisme. Hugh Darwen se réfère àHAVING
"La Folie des Requêtes Structurées":Je soupçonne fortement que la réponse à Darwen la question est non.
OriginalL'auteur onedaywhen