我有两张桌子。学生和科目:
CREATE TABLE Student (
student_id NUMBER,
student_name VARCHAR
);
CREATE TABLE Subject (
subject_id NUMBER,
student_id NUMBER,
subject_name VARCHAR,
marks NUMBER
);
我添加了以下数据
INSERT INTO Student
VALUES (1001, 'Sanjay Naik');
INSERT INTO Student
VALUES (1002, 'Rohit Sharma');
INSERT INTO Student
VALUES (1003, 'Virat Kolhi');
INSERT INTO Student
VALUES (1004, 'Nitish Kumar Reddy');
INSERT INTO Subject
VALUES (1,1001, 'Maths',72);
INSERT INTO Subject
VALUES (2,1001, 'English',84);
INSERT INTO Subject
VALUES (1,1002, 'Maths',79);
INSERT INTO Subject
VALUES (2,1002, 'English',94);
INSERT INTO Subject
VALUES (1,1003, 'Maths',65);
INSERT INTO Subject
VALUES (2,1003, 'English',89);
INSERT INTO Subject
VALUES (1,1004, 'Maths',54);
INSERT INTO Subject
VALUES (2,1004, 'English',51);
如何根据每门科目的成绩选出前三名学生?喜欢在英语和数学科目上都取得前三名的学生。
我试着跟随,
SELECT * FROM Student
INNER JOIN Subject
ON Student.student_id = Subject.student_id
ORDER BY Subject.marks DESC;
上述查询按照学生在两门科目中的得分顺序给出了他们的答案。如果我添加
LIMIT 3
它将获得前三名,而我想要英语和数学都是前三名的学生。