«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему я не могу использовать псевдонимы столбцов непосредственно в вычислениях одного и того же оператора SELECT?

Почему я не могу использовать псевдонимы столбцов непосредственно в вычислениях одного и того же оператора SELECT?

Опубликовано в 2025-03-22
Просматривать:967

Why Can't I Use Column Aliases Directly in the Same SELECT Statement's Calculations?

для непосредственного использования псевдоним столбца для расчета в SQL -запросах

]

в данном SQL -запросе, пытаясь использовать псевдонимы столбцов avg_time и в Expressions Round (avg_time * cnt, 2) приведет к ошибке "столбец" avg_time ". ]

Причина основной причины - это порядок расчета оператора

select . Программа обрабатывает весь оператор Select одновременно, поэтому значение псевдонима не может быть распознано в тот момент времени. ]

Решение: Использовать вложенные подведущие ]

, чтобы решить эту проблему, подразделы могут использоваться для инкапсуляции запроса, тем самым эффективно создавая промежуточный набор данных. В этом подведении вы можете создать необходимые псевдонимы столбцов

avg_time и 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;
теперь, когда этот запрос выполняется, подраздел сначала рассчитывается для создания набора данных, содержащего желаемый псевдоним столбца. Затем последующий оператор

SELECT может успешно относиться к этим псевдоням. ]

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3