2
모든 플레이어의 모든 점수를 저장하는 테이블이 있습니다. 나는 마지막 3 개 (또는 그 이하)를 꺼내 평균을 표시하고 싶다.모든 사람의 마지막 X 레코드 평균을 찾습니다.
예 :
TABLE log
time p_id score
---- ---- -----
12:00 0 10
14:23 0 25
14:25 1 30
16:27 0 70
17:00 0 80
지금은 모든 선수들의 지난 3 개 항목의 평균을 찾으려면 ...
결과 :
p_id avg
---- ---
0 58
1 30
어떻게 진행해야합니까?
나는 많은 것을 시도했지만 아무데도 가지 않았다. 이 작업을 수행하는 동안 MySQL에서 경고하는 몇 가지 경고가 나타났습니다. 'SELECT COUNT (*) FROM log LIMIT 3;'이라는 대답을 5로 생성합니다. 그것은 집계가 LIMIT 절을 무시하는 것처럼 보입니다. 'AVG (score) FROM log where p_id = 0 ORDER BY time DESC LIMIT 3;'을 선택하면 예상했던대로 평균 46.25가 나오지 않고 58.333이됩니다. –
Brian Hooper의 commetns에 추가하면 아마도 마지막 3 행을 반환하는 하위 쿼리에 참여해야하며 그 결과에 집계 함수를 사용해야합니다. –