このクエリの問題点:
SELECT count() as total_students
FROM student_information;
SELECT
(
SELECT student_project_marks
from students_project
WHERE student_project_id=student_information.student_project_id
)
+ student_assignment_marks
+ student_exam_marks AS total_marks
FROM student_information
ORDER BY total_marks DESC;
UPDATE student_information
SET (
SELECT student_grade
FROM student_information
LIMIT 0.1*total_students
ORDER BY total_marks DESC
)="A";
0.1*total_students
取得した合計点数で並べ替えられた学生の数
を選択し、成績を更新しようとしています....上位10%がAとして授与されます.エラーが発生しています:syntax error near '('
私は2つのテーブルを持っています:次のクエリでそれらを作成しました:
create table if not exists student_information (
student_name varchar(80),
student_roll_num int primary key,
student_email varchar(64),
student_assignment_marks int(2) check(student_assignment_marks<=30),
student_exam_marks int(2) check(student_exam_marks<=50),
student_project_id varchar(25),
student_grade varchar(2)
)
create table if not exist students_project (
student_project_id varchar(25),
student_project_title varchar(25),
student_project_marks int(2) check(student_project_marks>=0 and student_project_marks<=20)
)
プロジェクト内のマークには、student_project
を介してテーブルからアクセスしますstudent_project_id
。
合計点に基づいて成績を与えるにはどうすればよいですか...上位10%はA、次の10%はBなどを授与する必要があります...合計点の計算方法は知っています...次のようなクエリを書きましたこれ:
select student_roll_num,
(SELECT student_project_marks
from students_project
WHERE student_project_id=student_information.student_project_id )+
student_assignment_marks+student_exam_marks as total_marks from student_information;
できます。