2015-06-14 48 views
1

我有結果這樣的:All results而從結果是Ranking list計數結果行

查詢:

$results = $mysqli->query(" 
    SELECT tv.*, 
     (@rn := @rn + 1) as ranking 
FROM (SELECT liige_v.liige_id, liige_v.Eesnimi, 
      liige_v.Perekonnanimi, punktid, SUM(punktid) AS punktidkokku 
     FROM tulemus INNER JOIN 
      liige_v 
      ON tulemus.liige_id = liige_v.liige_id 
     GROUP BY tulemus.liige_id 
    ) tv CROSS JOIN 
    (SELECT @rn := 0) vars 
ORDER BY punktidkokku desc; 
"); 

表:

print '<table class="mytable4">'; 
echo "<tr><th>Koht </th><th>Liikme nimi </th><th> count results</th><th>Punktid</th></tr>"; 
while($row = $results->fetch_array()) { 

print '<tr>'; 
print '<td>' .$row["ranking"].'</td>'; 
    print '<td>'.$row["Eesnimi"].' '.$row["Perekonnanimi"].'</td>'; 
    print '<td>'.$row["countresults"].'</td>'; 
    print '<td>'.$row["punktidkokku"].'</td>'; 

print '</tr>'; 

} 

print '</table>'; 

我如何得到 「計數結果」 有多少reults得分的總和? 在我的例子第一Aivar Narusson有4場比賽288分(數resutls = 4)

+0

請編輯你的問題,帶有樣本數據和期望的結果。舉個例子,我不知道你的例子是指什麼。 SQL小提琴也可以提供幫助。並且不要使用外部網站來獲取與問題相關的信息。如果網站不可用,這個問題就沒有意義了。嘗試在問題中包含所有相關信息。 –

回答

2

我理解這個問題。如果你想要計數,只需在彙總中包括count(*)

SELECT tv.*, 
     (@rn := @rn + 1) as ranking 
FROM (SELECT liige_v.liige_id, liige_v.Eesnimi, 
      liige_v.Perekonnanimi, punktid, 
      COUNT(*) as cnt, SUM(punktid) AS punktidkokku 
     FROM tulemus INNER JOIN 
      liige_v 
      ON tulemus.liige_id = liige_v.liige_id 
     GROUP BY tulemus.liige_id 
    ) tv CROSS JOIN 
    (SELECT @rn := 0) vars 
ORDER BY punktidkokku desc;