서브쿼리 질문드립니다.
본문
$avg_class_ea=200;
$result=sql_fetch(" select SUM(tmp.level) as hab, COUNT(*) as cnt
from
(select level from $reservation
where mb_id='{$mb_id}'
and level<>'0'
and classdate<='$classdate'
order by classdate desc, classtime desc limit $avg_class_ea) as tmp");
$myavg=round($result[hab]/$result[cnt]); //평균값계산
아주 기초적인 걸 질문드립니다...
평균값을 산출하는 수업관리 프로그램입니다. 참고로 레코드 1개가 수업1개입니다.
서브쿼리에서요..
내 수업(mb_id='{$mb_id}')
레코드 그리고 이미 평가된 것들(level<>'0')
지난 수업들(classdate<='$classdate' )을 조건을 주고요.
이걸 수업시간별로 최근것으로 정렬해서 200개를 ($avg_class_ea) 갖고와서 그 평균을 계산하는 쿼리입니다.
[질문요]
질문요지는 $avg_class_ea 값이 200개인데 200개가 안될 경우 level 값이 어떻게 나올까 그게 궁금합니다.
이 질문을 드리는 이유는
classdate와 classtime 는 최근걸로 sort시키고 있습니다.
소트시킨 결과 값에 leve 값이 있는게 있고 없을 수도 있거든요.
level 값을 합하고 갯수 카운트해서 (SUM(tmp.level) as hab, COUNT(*) as cnt)
$myavg 값을 계산하게 했거든요..
그런데
200개를 limit 하면 그 중 200개 레코드 모두 level 값이 있으면 좋겠는데 그 중에서 level 값이 없을 경우도 있거든요..
이럴경우 결과 값이 에러가날찌 아니면 계산이 되는지 알고 있습니다..ㅠㅠ
데이터가 없어서 테스트를 못해 보기때문에..ㅠㅠ 쿼리문만 보고 알수 있으면 좀 부탁드립니다.
!-->
답변을 작성하시기 전에 로그인 해주세요.