Vous pouvez utiliser un alias créé précédemment dans le GROUP BY
ou HAVING
mais pas dans un SELECT
ou WHERE
déclaration. C'est parce que le programme traite tous les SELECT
en même temps et ne connaît pas encore la valeur de l'alias.
La solution est d'encapsuler la requête dans une sous-requête, puis l'alias est disponible à l'extérieur.
SELECT stddev_time, max_time, avg_time, min_time, cnt,
ROUND(avg_time * cnt, 2) as slowdown
FROM (
SELECT
COALESCE(ROUND(stddev_samp(time), 2), 0) as stddev_time,
MAX(time) as max_time,
ROUND(AVG(time), 2) as avg_time,
MIN(time) as min_time,
COUNT(path) as cnt,
path
FROM
loadtime
GROUP BY
path
ORDER BY
avg_time DESC
LIMIT 10
) X;