A simple solution is to create another table:
CREATE TABLE BestStudent ( student_id BIGINT PRIMARY KEY, FOREIGN KEY (student_id) REFERENCES Student(student_id) );
This table has just one row, so it must reference only one student. You don’t need a new column in the
Student table, you only need that table to have a primary key for this little table to reference.
If you really only want to keep the single best student, then you should simply never insert any more rows. Update the current row if a new student beats the former best student’s performance.
You might also want to use this table to store a history of the best students, in which case you would keep multiple rows. It’s up to you. But the point is that you can use this technique to avoid adding a column to millions of rows in the student table. This table is bound to stay small.