簡體   English   中英

如何計算口才百分比?

[英]How to calculate the percentage in eloquent?

請看看問題。 您會發現它很有趣。 我有一個表member ,其中有一個列result 在此結果列中,可能有三個值,一次只能使用一個值。 可能的值WLV 忘記V因為這里不需要。

假設我有5行,在3行中有W ,在1行中有L ,最后一個是V

所以這里3W和1L占4(W + L在一起)。 因此W的百分比為75%。 我該如何使用mysql計算它,如果可以使用雄辯,那會更好。

當前,我正在使用此解決方案1.獲取所有行2.運行php循環3.然后根據結果列的值計算百分比。 工作正常。 但我認為,如果有更好的解決方案,為什么不找到它:)

希望您能解決這個問題。 提前致謝。

您的問題有點含糊,但是從我看來, COUNT函數在這里應該足夠了:

SELECT
    100.0 * COUNT(W) / COUNT(*) AS w_pct,
    100.0 * COUNT(L) / COUNT(*) AS l_pct
FROM yourTable;

當然,如果您已經在進行聚合,則可以修改上面的查詢以包括GROUP BY

如果您想要一個純粹的口才解決方案,請執行以下操作:

$wl = Member::whereIn('result', ['W', 'L'])->count();
$total = Member::count();
$percent = $wl / $total * 100;

這比實際從數據庫檢索任何記錄要有效得多。

如果$ total = 0怎么辦? 在這種情況下,除以零將產生錯誤。 請確保同樣進行檢查:

if ($total != 0) {
$percent = $wl / $total * 100;
} else {
$percent = 0;
}

希望以后對您有所幫助。

在Laravel Join查詢中,具有計數百分比:

select('marketplace.store_name', 'users.name' , **DB::raw('round((count(products.user_id)/(select count(*) from products)*100),2) as percentage')** , DB::raw('round(avg(products.user_id),2) as avg') );

我希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM