평균점수에서 가까운 사람을 뽑는 법 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

평균점수에서 가까운 사람을 뽑는 법 정보

평균점수에서 가까운 사람을 뽑는 법

본문

아래와 같이 점수테이블에서 수학 점수만을 뽑아 수학평균을 내었는데요,

<?  //점수 평점 구하기
  $score=0;$s=0;$d=0;$cnt=0;
  $sql = " select  * from 점수테이블 where 수학";
  $result = sql_query($sql);
for ($i=0; $i < $rows=sql_fetch_array($result); $i++)
{
$score = number_format($rows[점수필드]);
$s = $s + $score;
$d = 1 + $d;
$cnt = $s / $d;
}
$average = ceil($cnt);  //수학점수 평균
?>

수학평균에서 점수가 가까운 사람 3명을 뽑는 식은 어떻게 만들면 될까요,,,

예를 들어 5명의 수학점수가 아래와 같다면
95, 91, 88, 87, 70
평균점수는 86.2점인데요,
여기에서 86.2점하고 가장 근접한 사람 3명은 87, 88, 91 이렇게 3명이 되는데요,
평균에서 가까운 점수의 3명을 뽑는 법을 어떻게 함수를 만들어야 할지 조언주시면 감사하겠습니다.

댓글 전체

근접하다라는 단어를 mysql 에서 찾기가 힘듭니다

가장 좋은건 같은것을 찾는것 그것도 아니라면

평균점수보다 작은 혹은 큰 또는 범위를 지정하거나 하는 식의 기준이 있어야 합니다.

추천 하는 방법은 평균보다 작은 3명 큰 3명을 뽑아 프로그램적으로 계산 하는 방법이 어떨까 합니다.
${1차로 뽑을 사람 값} = "";
$sql = " select  * from 점수테이블 where 점수필드 <{수학평균점수} order by 점수필드 asc limit 1 ";
$result1 = sql_query($sql);
for ($i=0; $i < $rows=sql_fetch_array($result1); $i++) {
  ${1차로 뽑을 사람 값} .= $row[{1차로 뽑은사람 이름}]."(".$row[{1차로 뽑은사람점수}]."점), ";
}
$sql = " select  * from 점수테이블 where 점수필드 >= {수학평균점수} order by 점수필드 desc limit 2 ";
$result2 = sql_query($sql);
for ($i=0; $i < $rows=sql_fetch_array($result2); $i++) {
  ${1차로 뽑을 사람 값} .= $row[{1차로 뽑은사람 이름}]."(".$row[{1차로 뽑은사람점수}]."점), ";
}

echo ${1차로 뽑을 사람 값};


이렇게 구현하시면 될듯싶네요..
낮은사람은 1명
높은사람 2명 이런식으로 하면 좋을듯합니다.
평균점수와 근접한 사람 = 편차가 적은 순으로 뽑으심 될 듯 합니다.

편차 ..

http://ko.wikipedia.org/wiki/%ED%8E%B8%EC%B0%A8

1. 평균점수를 구한다.
2. 각각의 편차를 구한다.
3. 편차순으로 정렬한다.
4. 원하는 순위만 뽑아낸다.

배열에 넣고 편차값을 추가하고 배열을 편차순으로 정렬하는 방법을 추천드립니다.
평균에서 가까운 점수의 3명을 뽑는 법을 <---질문자체가 명확하지않습니다
점수가 예로든 것처럼만 된다는 법이 어딨습니까?
동점이 10명이 있을 수 있고 20명이 있을 수도 있는데 이 경우 어떤 3명을 뽑아낸다는 것인가요?
전체 66,558 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT