计算结果行

时间:2015-06-14 15:04:47

标签: php mysql

我有这样的结果: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>';

我如何获得“计算结果”,因为有多少结果给出了总分? 在我的例子中,Aivar Narusson在4场比赛中得到288分(计数结果= 4)

1 个答案:

答案 0 :(得分: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;