SQL SELECT 문: 그룹화 후 열 별칭 활용
데이터베이스 작업에서는 SELECT
절 다음에 오는 GROUP BY
표현식 내에서 열 별칭을 사용해야 하는 경우가 많습니다. 그러나 이러한 맥락에서 별칭을 직접 사용하면 오류가 발생하는 경우가 많습니다.
다음 SQL 쿼리를 고려해보세요.
<code class="language-sql">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, ROUND(avg_time * cnt, 2) as slowdown, path FROM loadtime GROUP BY path ORDER BY avg_time DESC LIMIT 10;</code>
이 쿼리를 실행하면 "avg_time"이 정의되지 않았다는 오류가 발생할 수 있습니다. 이는 데이터베이스가 SELECT
문을 전체적으로 처리하기 때문에 발생합니다. 별칭이 동일한 문 내에서 사용할 수 있을 만큼 일찍 정의되지 않았습니다.
해결 방법은 하위 쿼리를 사용하는 것입니다. 이를 통해 외부 쿼리에서 별칭을 정의하고 액세스할 수 있습니다. 수정된 쿼리는 다음과 같습니다.
<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>
내부 하위 쿼리는 별칭을 정의합니다. 그런 다음 외부 쿼리는 계산 및 선택을 위해 미리 정의된 별칭을 사용하여 오류를 방지합니다. 이 접근 방식을 사용하면 하위 쿼리 범위 내에서 생성된 별칭을 참조하여 그룹화된 결과를 기반으로 데이터 조작이 가능합니다.
위 내용은 SQL SELECT 문에서 그룹화한 후 열 별칭을 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!