limitações para usar diretamente o alias da coluna para cálculo em consultas SQL
Em uma determinada Query SQL, tentando usar aliases da coluna avg_time
e nas expressões
redond (avg_time * cnt, 2) causará o erro "column" avg_time "não existe".
selecione . O programa processa a instrução
seleciona ao mesmo tempo, para que o valor do alias não possa ser reconhecido nesse momento.
Solução: use subconspositores aninhados ]
Para resolver esse problema, as subconeiras podem ser usadas para encapsular a consulta, criando efetivamente um conjunto de dados intermediário. Nesta subconsulta, você pode criar os aliases de coluna necessários avg_time e
cnt .
•
DE (
Selecione
Coalesce (Round (stddev_samp (horário), 2), 0) como stddev_time,
Max (tempo) como max_time,
Redonda (avg (tempo), 2) como avg_time,
Min (tempo) como min_time,
Contagem (caminho) como cnt,
caminho
DE
tempo de carga
Grupo por
caminho
Ordem por
avg_time desc
Limite 10
) X;
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;
pode consultar com êxito esses aliases. Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3