[英]mysql or avg or should i use php?
我正在嘗試通過mysql查詢找到平均值的平均值。
我有12條條件,我可以得到某列的平均值,但是我找不到平均值,
我正在嘗試得出12條標准的總評分。
我認為有幾種方法可以解決此問題。
我需要根據總數除以總數的數字。 1個用戶可以在1行中輸入12票2個用戶可以在2行中總共輸入18票,這意味着1個用戶尚未完成6票 出於測試目的,該表已縮短為包含投票的列。 我已經發布了此信息,很抱歉重新發布,但是開始了解我大致需要什么幫助
首先,為了確定用戶是否已投票,您需要在字段中存儲除整數以外的其他內容,直到添加投票為止。 我建議NULL
。
接下來,在表格中為用戶的平均評分添加另一列。 這將使用行中沒有 null
值的列進行計算。 半偽代碼示例:
// Get users row from database
// Use a query like:
// SELECT comfort,service,friendliness,food,drinks,toilet,music FROM myTable WHERE user_id = 123;
$row = $db->fetchrow($userid);
// Loop through and find out how many are valid
// Also add values together
foreach($row as $col)
{
if( !is_null($col) )
{
$numValidColumns++;
$totalVote = $totalVote + $col;
}
}
// Calculate user's average
$userAvg = $totalVote/$numValidColumns;
// Add to db for this row in new field you just made
$db->insert(...);
這樣的事情將使您能夠計算出用戶的平均保存量。 如果他們再投票,您將重新計算該平均值。
最后一步是查詢所有行,並將用戶平均值列的值相加。 將其除以總行數即可得出總體平均值。
希望這對您來說是正確的。
我使用臨時表做了類似的事情。 首先對每列進行平均值計算,然后對總平均值進行計算或執行任何操作(返回所需值)。 但是不要忘記刪除臨時表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.