0

次のMySqlステートメントがあります.whileループで「ランキング」の累積合計を取得できません

SELECT *,
    q1 + ((q1 + q2 + q3 + q4 + q5 + q6) / 6)
    AS ranking
    / SUM(ranking)
    FROM table
    WHERE field = :field
    GROUP by id

私のクエリのこの部分は完全に機能します:

q1 + ((q1 + q2 + q3 + q4 + q5 + q6) / 6)
    AS ranking

「AS ランキング」値をクエリ出力の各「ランキング」行の合計で割り、while ループの $rankingPercentage 変数に返す必要があります。

q1 q2 q3 q4 q5 q61 つのテーブル内のすべてのフィールドであり、0 から 100 までの数値 (VARCHAR) が含まれています。

SQLクエリで返されたすべての「ランキング」行の合計で割った「ランキング」(「ASランキング」の上の私の式)である$rankingPercentageの出力を返すことを期待しています。

以下の私のWhileループ:

 while($row = $sqlprep->fetch(PDO::FETCH_OBJ)){

        $ranking = $row->ranking;

        echo '<tr valign="bottom"><td>' . $row->id . '</td>';
        echo '<td>' . $row->uid . '</td>';
        echo '<td>' . $row->q1 . '</td>';
        echo '<td>' . $row->q2 . '</td>';
        echo '<td>' . $row->q3 . '</td>';
        echo '<td>' . $row->q4 . '</td>';
        echo '<td>' . $row->q5 . '</td>';
        echo '<td>' . $row->q6 . '</td>';
        echo '<td>' . $row->q9 . '</td>';
        echo '<td class="capitalise">' .  $ranking. '</td>';
        echo '<td class="capitalise">' .  $rankingPercentage . '</td>';
        echo '</tr>';
    }
4

1 に答える 1