次のようなマークシート テーブルがあります。
ID STUDENT_ID Branch_id Class_id Exam_id Subject_id 数字 日付 1 653 5 1 1 8 60 2012-01-01 2 653 5 1 1 9 40 2012-01-01 3 653 5 1 1 10 80 2012-01-01 4 653 5 1 1 11 50 2012-01-01 5 653 5 1 1 12 65 2012-01-01 6 653 5 1 1 13 33 2012-01-01 7 653 5 1 1 15 86 2012-01-01 8 222 5 1 1 8 100 2012-01-01 9 222 5 1 1 9 80 2012-01-01 10 222 5 1 1 10 92 2012-01-01 11 222 5 1 1 11 50 2012-01-01 12 222 5 1 1 12 65 2012-01-01 13 222 5 1 1 13 33 2012-01-01 7 222 5 1 1 15 86 2012-01-01
ランクを取得したい この質問で回答を得ました
また、すべてのクラスの結果をフェッチするときは、ピボット クエリを使用します。
SELECT stu_id, sum(numbers) AS total, branch_id, depart_id, class_id,
SUM( IF( subject_id =1, numbers, 0 ) ) AS MAth,
SUM( IF( subject_id =2, numbers, 0 ) ) AS Eng,
SUM( IF( subject_id =3, numbers, 0 ) ) AS Science
FROM marksheet where branch_id = 1 AND depart_id = 1
AND class_id = 1 GROUP BY stu_id ORDER BY total DESC
クラス クエリ (ピボット クエリ) でランクを取得したいですか? そして、1 位の生徒数と 2 位と 3 位の生徒数を数えたいですか?
必要なデータ サンプル:
ID 名前 数学 英語 科学 合計 パーセント ポジション ランク
誰か助けて?