次のような評価のSQLクエリがあります
location, cleanliness, money, kitchen, checkinprocess, servicebyowner
少数のデータについてはcheckinprocess
、servicebyowner
です0
。値の平均を計算したいだけです。
結果として20行がある場合、の平均はcheckinprocess
、serviceby owner
既存の行に対してのみ計算する必要があります(10行の結果のうち2行のみの場合)、2行の平均のみを計算する必要があります。ただし、他の行については、行数に基づいて計算できます。ここに私が書いたクエリがあります:
select count(customdata) as CNT,
customdata,
sum(service_by_owner) as ser,
sum(checkinprocess) as chk,
sum(locationrating) as loc,
sum(cleanlinessrating) as cle,
sum(valueformoneyrating) as val,
sum(kitchenequipmentrating) as kit
from feedback
group by customdata HAVING customdata !='null' AND customdata!='';
行に基づいて残りの 4 つのフィールドの平均を計算することはできますが、この 2 つのフィールドについては、私には少し注意が必要です。
編集:
平均の計算に使用される PHP:
foreach($result as $row){
$arrValues[] = array("customdata"=>$row['customdata'],
"checkinprocess"=>ceil(($row['chk'])),
"service_by_owner"=>(ceil($row['ser'])),
"valueformoneyrating"=>ceil(($row['val']/($row['CNT']*4))*100),
"locationrating"=>ceil(($row['loc']/($row['CNT']*4))*100),
"kitchenequipmentrating"=>ceil(($row['kit']/($row['CNT']*4))*100),
"cleanlinessrating"=>ceil(($row['cle']/($row['CNT']*4))*100));
}
この checkinprocess と servicebyowner は、0 であるすべての行ではなく、既存の行の平均のみを計算する必要があります。