Bonjour,
Est-il possible d'effectuer ceci ? :
HAVING COUNT(COLUMNA) > COLUMNB
Merci
Bonjour,
Est-il possible d'effectuer ceci ? :
HAVING COUNT(COLUMNA) > COLUMNB
Merci
HAVING intervient après le GROUP BY.
Si colonneB est dans le GROUP BY, ça doit pouvoir fonctionner.
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Oui, je viens de l'expérimenter.
Mais je ne comprend pas trop pourquoi.
Le group by définit les uniques colonnes qui peuvent être utiliser par la clause SELECT c'est ça ?
Et de façon indirecte, les seules colones qui peuvent être utilisées sont celles définies par le group by ?
Comme j'écris souvent, toutes les colonnes du SELECT ne faisant pas l'objet d'une fonction de groupage doivent figurer dans le GROUP BY sous peine de voir des valeurs aléatoires pour les colonnes manquantes.
Le problème qui aurait pu se poser dans votre cas est que mettre colonneB dans le GROUP BY change le résultat car ne dépendant pas directement de la ou des colonnes qui y figuraient jusque là.
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Merci
Mon problème se situait plutôt au niveau de l'ordre d’exécution des clauses. J'oublie encore trop souvent que le SELECT est exécuté en dernier lieu et donc hérite des colonnes définies par la dernière clause exécutée.
Ici, pour utiliser une colonne dans la clause HAVING, il faut que celle-ci soit définie dans la dernière clause exécutée, à savoir le GROUP BY(ici).
Problème résolu donc.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager