이후 표현식의 SQL SELECT 문에서 열 별칭 사용
SQL에서는 동일한 SELECT 문의 후속 표현식에 열 별칭을 사용하려는 상황이 발생할 수 있습니다. 그러나 이렇게 하면 질문에 설명된 것과 유사한 오류가 발생할 수 있습니다.
이 제한이 적용되는 이유는 SELECT 문을 평가할 때 열 별칭이 함께 처리되기 때문입니다. 따라서 동일한 SELECT 문 내에서는 별칭을 사용할 수 없습니다.
해결책: 하위 쿼리에 쿼리를 캡슐화합니다.
이 문제를 해결하려면 원래 쿼리를 하위 쿼리에 캡슐화할 수 있습니다. 그러면 하위 쿼리 외부에서 열 별칭을 사용할 수 있는 새 범위가 생성됩니다.
다음은 ROUND(avg_time * cnt, 2) 표현식에서 열 별칭 avg_time 및 cnt를 사용하도록 쿼리를 수정하는 방법입니다.
<code class="language-sql">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;</code>
쿼리를 하위 쿼리에 캡슐화하면 외부 SELECT 문에서 별칭을 사용할 수 있으므로 ROUND(avg_time * cnt, 2) 표현식을 성공적으로 평가할 수 있습니다.
위 내용은 동일한 SQL SELECT 문 내의 후속 표현식에 열 별칭을 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!