2014-12-16 4 views
0

정확한 제목을 사용했는지 확신 할 수 없지만 주제에 대해 조금 더 이해하면 질문을 편집합니다. 여러 숫자에 대해 AVG 함수를 사용하여 평균을 계산하십시오.

는 지금은 MySQL을의 AVG() 기능을 테스트하기 위해 노력하고 쿼리 시도 :

SELECT AVG(1,2,3) 

나는이 결과로 저를 2 줄 것으로 기대합니다. 하지만 AVG() 하나의 매개 변수로 열 이름을받을 예정 이었기 때문에 오류가 발생했습니다. 나는이 인공적인 예를 넘어서 어디에서든지이 것이 필요할 것이라고 상상할 수는 없지만 그러한 쿼리를 수행 할 수 있다면 SQL 언어를 더 잘 이해할 것이라고 믿는다.

답변

2

Avg()은 집합 함수이므로 단일 oolumn 값 (또는 각 행에 대해 평가되는 단일 표현식)에서 작동합니다. 여러 인수를 취하지 않습니다. 당신은 단순히 원하는 :와

SELECT (1 + 2 + 3)/3 

명암이 :

SELECT AVG(t.n) 
FROM (SELECT 1 as n UNION ALL 
     SELECT 2 UNION ALL 
     SELECT 3 
    ) t 

이 평균을 계산 한 행에 세 개의 행을 요약 한 것입니다. 당신에

+0

두 번째와 세 번째 선택에서 대괄호로'n '을 남겼다는 것은 흥미로운 사실입니다. 나는'n으로 '그리고 당신이 추천 한대로 ('n으로하지 않고) 둘 다 시도했다. –

+1

@VladaKatlinskaya. . . 컬럼 이름은'union all' 또는'union'의 첫 번째 하위 쿼리에서 가져옵니다. 후속 하위 쿼리의 열 이름을 지정하는 것은 선택 사항입니다. 쿼리를보다 이해하기 쉽게 만들 때 도움이됩니다. –

1

경우이

Select avg(data) 
From (select 1 as data union 
Select 2 as data union 
Select 3 as data) a 

자원의 부하가 SQL 학습을위한 인터넷에있는 것처럼 평균 사용할 수 있습니다. 그들 중 일부를 확인해야합니다.

희망이 있습니다.

관련 문제