para usar directamente alias de columna para el cálculo en consultas SQL
en una consulta SQL dada, intentando usar alias de columna avg_time
y en las expresiones
redonde (avg_time * cnt, 2) causará el error "columna" columna "avg_time" no existe ".
select . El programa procesa la declaración completa
select al mismo tiempo, por lo que el valor de alias no se puede reconocer en ese momento.
Solución: Use subconsules anidados ]]
Para resolver este problema, las subconsules se pueden usar para encapsular la consulta, creando así efectivamente un conjunto de datos intermedio. En esta subconsulta, puede crear los alias de columna requeridos avg_time y
cnt .
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;
Ahora, cuando se ejecuta esta consulta, la subconsulta se calcula primero para generar un conjunto de datos que contiene el alias de columna deseado. Luego, la instrucción posterior select puede referirse con éxito a estos alias.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3