im essayant d'obtenir des statistiques pour chaque jour avec PL / SQL.
Chaque jour a plusieurs entrées, des bukkets d'erreurs :-) Je veux les regrouper par jour. p>
Que fais-il actuellement : P>
SELECT TO_CHAR(dateTime, 'DD') DAY, TO_CHAR(dateTime, 'MM') MONTH, errormessage FROM log WHERE (...) GROUP BY MONTH, DAY, errormessage
3 Réponses :
Votre problème est un problème d'étendue. Le groupe ceci est une autre: p> Notez que certaines bases de données ( Y compris MySQL, PostgreSQL et d'autres personnes) permettent de référencer des alias de colonne de la projection dans le groupe code> clause code>. Dans les dialectes SQL SQL (tels que Oracle) qui ne devraient pas être possibles, bien que p> p> Groupe par code> fait partie de l'expression de la table de l'instruction et est donc évaluée avant la clause
SELECT CODE>, c'est-à-dire la projection. Cela signifie que vos alias projetés ne sont pas disponibles au moment du regroupement. Ceci est une solution
comportement non standard h3>
SELECT TO_CHAR(dateTime, 'DD') DAY, TO_CHAR(dateTime, 'MM') MONTH, errormessage FROM log WHERE (...) GROUP by TO_CHAR(dateTime, 'DD'), TO_CHAR(dateTime, 'MM'), errormessage you can't use aliases in group by
SELECT TO_CHAR(dateTime, 'DD') DAY, TO_CHAR(dateTime, 'MM') MONTH, errormessage FROM log WHERE (...) GROUP BY TO_CHAR(dateTime, 'DD'), TO_CHAR(dateTime, 'MM'), errormessage Column aliases are no good for GROUP BY, you need the full expression.
Merci! Acceptanse en 8 min: D
Heureux d'aider, et vous devriez également consulter la réponse de @Lukas Ederer, dans certains cas, sa solution est meilleure pour la lisibilité.