아래 코드를 가지고 있으며 3 열의 AVG를 얻으려고합니다.AVG 함수에서 별칭을 사용하는 방법
SELECT
(SUM(score) * .3) As score_a,
(SUM(score) * .6) As score_b,
(SUM(score) * .8) As score_c
--now I want to get the AVG of the above scores
AVG(score_a + score_b + score_c) As avg_score
FROM score_table
그러나 이것은 작동하지 않습니다. 내가 얻는 오류는 "잘못된 열 이름 score_a"입니다.
SELECT
(SUM(score) * .3) As score_a,
(SUM(score) * .6) As score_b,
(SUM(score) * .8) As score_c,
AVG(score_a + score_b + score_c) As avg_score
FROM score_table
을하고 당신을 위해 작동하는지 확인 : 나는 SQL 서버 2008
죄송 하위 쿼리, 사실은 위의 내 코드를 수정했습니다. 나는 여전히 같은 오류가 발생합니다. – dido
별명은'SELECT' 문이 완료 될 때까지 존재하지 않기 때문에 당신은 할 수 없습니다. 이 작업을 수행하려는 더 큰 컨텍스트는 무엇이며, RDBMS는 무엇입니까 (사용 가능한 다른 솔루션). 'score'가 int라고 가정하면 결과를 double/float 값으로 받아들이습니까 (즉, 평균 진술이 쓰여지는 방식을 수학적으로 리팩토링하는 것이 허용됩니까?)? –
단일 번호의 AVG를 얻는 방법은 무엇입니까? 실제로 모든 점수를 추가하고 그것에 AVG를 적용하고 있습니까? – Habib