私はmysqlクエリに苦労しています。私を助けてください。これは私のクエリです。正しい結果が得られますが、mysql で結果を変更する必要があります。
SELECT bu.username,
bg.id as goal_id,
br.id as reason_id,
(SELECT COUNT(test_reason_id) FROM test_rank WHERE test_reason_id = br.id) as point
FROM
test_goal AS bg INNER JOIN test_reason AS br ON
br.user_id=bg.user_id INNER JOIN test_user AS bu ON
br.user_id=bu.id
WHERE
bg.id = br.test_goal_id
GROUP BY
bg.id
ORDER BY
point DESC
表-1 ORDER BY ポイント DESC を使用すると、実際のテーブルは次のようになり、表-2 のようになります。
username goal_id reason_id point
khan 8 3 2
john 6 9 5
yoyo 5 21 4
smith 11 6 5
表-2 私の結果セットは次のようになります
username goal_id reason_id point
john 6 9 5
smith 11 6 5
yoyo 5 21 4
khan 8 3 2
しかし、私はこのような結果セットが欲しい
username goal_id reason_id point rank
john 6 9 5 1
smith 11 6 5 2
yoyo 5 21 4 3
khan 8 3 2 4
これは可能ですか?誰でも私を助けてください。私には難しすぎる。