私は調査プラットフォームを構築しており、調査の平均回答率を取得する必要があります。 私が現在やっていることは、すべての質問を検索して、表示された時間と時間に分けて回答することです。 DBの平均を計算し、何千もの結果をループしないことによって、より効率的な/少ないリソース消費方法がありますか?あなたは生のSQLに行くことができますPHP - Laravel - Eloquentから直接平均を取得し、結果をループする必要はありません
$total_showed = 0;
$total_answered = 0;
$total_queries = Query::where('client_app_id','=', $app_id)->get();
foreach ($total_queries as $app_query) {
$total_showed = $total_showed + $app_query->showed;
$total_answered = $total_answered + $app_query->answered;
}
if ($total_showed > 0) {
$total_arate = round(($total_answered/$total_showed) * 100, 1);
} else {
$total_arate = 0;
}
getの代わりにcountを使用すると、カウントが戻されます。 :) –