Bạn có thể sử dụng bí danh đã tạo trước đó trong GROUP BY
hoặc HAVING
nhưng không có trong SELECT
hoặc WHERE
tuyên bố. Điều này là do chương trình xử lý tất cả SELECT
đồng thời tuyên bố và chưa biết giá trị của bí danh.
Giải pháp là đóng gói truy vấn trong một truy vấn con và sau đó bí danh có sẵn bên ngoài.
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;