Assignment 1
Assignment 1
ANS 1
SELECT
c.Title AS Course_Name,
d.DepartmentID AS Department_Name, -- Assuming a mapping for department
names
CONCAT(ci_instructor.FirstName, ' ', ci_instructor.LastName) AS
Course_Instructor,
COUNT(DISTINCT sg.StudentID) AS Number_of_Students
FROM
course c
LEFT JOIN
studentgrade sg ON c.CourseID = sg.CourseID
LEFT JOIN
courseinstructor ci ON c.CourseID = ci.CourseID
LEFT JOIN
person ci_instructor ON ci.PersonID = ci_instructor.PersonID
LEFT JOIN
departments d ON c.DepartmentID = d.DepartmentID -- Assuming a `department`
table for department names
GROUP BY
c.CourseID, ci.PersonID;
OUTPUT
ANS 2
OUTPUT
ANS 3
ANS 4
OUTPUT
ANS 4
SELECT
sg.StudentID AS Student_ID,
p.FirstName AS Student_First_Name,
p.LastName AS Student_Last_Name,
(
SELECT
SUM((sg_sub.Grade * 5) * c.Credits)
FROM
studentgrade sg_sub
INNER JOIN
course c ON sg_sub.CourseID = c.CourseID
WHERE
sg_sub.StudentID = p.PersonID
)/
(
SELECT
SUM(c.Credits)
FROM
studentgrade sg_sub
INNER JOIN
course c ON sg_sub.CourseID = c.CourseID
WHERE
sg_sub.StudentID = p.PersonID
) AS Weighted_Average_Grade_Out_of_20
FROM
person p
INNER JOIN
studentgrade sg ON sg.StudentID = p.PersonID
WHERE
p.Discriminator = 'Student';
OUTPUT
ANS 5
SELECT
sg.StudentID AS Student_ID,
p.FirstName AS Student_First_Name,
p.LastName AS Student_Last_Name,
(
SELECT
SUM((sg_sub.Grade * 5) * c.Credits)
FROM
studentgrade sg_sub
INNER JOIN
course c ON sg_sub.CourseID = c.CourseID
WHERE
sg_sub.StudentID = p.PersonID
)/
(
SELECT
SUM(c.Credits)
FROM
studentgrade sg_sub
INNER JOIN
course c ON sg_sub.CourseID = c.CourseID
WHERE
sg_sub.StudentID = p.PersonID
) AS Weighted_Average_Grade_Out_of_20
FROM
person p
INNER JOIN
studentgrade sg ON sg.StudentID = p.PersonID
WHERE
p.Discriminator = 'Student'
ORDER BY
Weighted_Average_Grade_Out_of_20 DESC;
OUTPUT