2012-08-22 2 views
0

몇 가지 통계를 수집하고 싶은데 DB 쿼리에서 직접 최소, 최대 및 평균값을 취할 수 있는지 궁금합니다.SQL 통계 쿼리

Person | Account 
__________________ 
Person1 | Account1 
Person1 | Account2 
Person1 | Account3 
Person2 | Account4 
Person2 | Account5 
.................. 

내가 최대, 최소 및 사람이이 계정의 평균 수를 찾으려면 : 지나친 단순화에서

나는 이런 식으로 뭔가가있다. SQL 쿼리가 가능합니까?

답변

6
select 
    min(accountcount), 
    avg(accountcount), 
    max(accountcount) 
from 
(
    select 
     person, count(*) as accountcount 
    from 
     yourtable 
    group by person 
) v 

AVG은 다른 종류의 평균과는 반대로 평균을 반환합니다.

MAX() MIN() AVG()

select max(cnt), min(cnt), avg(cnt) 
from 
(
    select person, count(*) cnt 
    from yourtable 
    group by person 
) x 
+0

+1 나는 똑같은 대답을 붙여 넣으 려하고있었습니다. 더 빠릅니다 –

2

예, 이러한 유형의 작업을 수행 할 수 aggregate 기능을 사용할 수

SELECT MIN(PersonCount), MAX(PersonCount), AVG(PersonCount) FROM 
(SELECT Person, COUNT(*) AS PersonCount FROM PersonAccounts GROUP BY Person)
2

당신은 이런 식으로 뭔가를 사람이 그룹에 있고 그 하위 쿼리 :

+0

그 하위 쿼리에 별칭이 필요합니다 :) – podiluska