Question
Solution
SQL
CREATE OR REPLACE FUNCTION calculate_grade(
subject1 INTEGER, subject2 INTEGER, subject3 INTEGER,
subject4 INTEGER, subject5 INTEGER, subject6 INTEGER
)
RETURNS TEXT AS $$
DECLARE
total INTEGER;
average DECIMAL;
grade CHAR;
BEGIN
-- Calculate total marks
total := subject1 + subject2 + subject3 + subject4 + subject5 + subject6;
-- Calculate average marks
average := total / 6.0;
-- Determine the grade based on average
IF average >= 90 THEN
grade := 'A';
ELSIF average >= 80 THEN
grade := 'B';
ELSIF average >= 70 THEN
grade := 'C';
ELSIF average >= 60 THEN
grade := 'D';
ELSE
grade := 'F';
END IF;
-- Return the grade
RETURN grade;
END $$ LANGUAGE plpgsql;
4/4 test cases passed
No hidden test cases