2012-01-03 30 views
1

我有一個充滿統計數據庫。建設獎勵大廳mysql查詢?

我知道如何做這樣的事情來獲得前10名賬戶有一定的統計...

SELECT money FROM accounts ORDER BY money DESC LIMIT 10 

這將顯示前10個賬戶的錢的統計數據。說如果我有10個不同的統計數據,有沒有一種查詢方法可以根據所有統計數據找出前十名球員的位置?或者它會涉及很多的查詢,然後用我選擇的語言來顯示它?

感謝

+0

請通過'查詢,將制定出的十強選手基於所有statistics'位置更具體的 - 你的意思,你要評估等級之外的誰是每個頂部統計結合?就像如果帳戶1是10/10的統計數據的頂部,他是在上面,其次是誰是9/10數據的頂部,然後是8/10,等等......? – Nonym 2012-01-03 08:32:22

+0

是的,我想根據所有數據找到前十名。 – cgweb87 2012-01-03 09:53:51

回答

1

你必須拿出一個順序來排序他們,你可以多個排序添加到查詢,但它可能不會給結果你想

SELECT money FROM accounts ORDER BY money DESC, points DESC LIMIT 10 

然而,你可以想出一些評分系統,但這意味着很多疑問。至少,根據統計數據,這將是一個類似於你已經寫過的數據。類似這樣的:

$result = mysql_query('SELECT money, account_id FROM accounts ORDER BY money DESC LIMIT 100'); 

$accounts = array(); 
$points = mysql_num_rows($accounts); 
while ($row = mysql_fetch_assoc($result)){ 
    $accounts[$row['account_id']] += $points; 
    $points--; 
} 

並且對每個得分類型重複這一點。之後,根據點數排列數組,您將知道頂部列表。

+0

是的,我想過這個,只是想知道是否可以用一個查詢 – cgweb87 2012-01-03 09:54:51

1

您可以訂購一個或多個字段。您也可以計算字段。

SELECT money FROM accounts ORDER BY money, balance, age, SUM(money + balance) DESC LIMIT 10