Files
relational-database-systems/Project/02_views.sql
T
2025-11-28 17:07:17 -08:00

59 lines
1.6 KiB
SQL

SET search_path TO lab_tracker_group_22;
CREATE OR REPLACE VIEW ta_view AS
SELECT
ls.lab_section_id AS lab_section,
e.le_id,
s.student_id,
s.student_first_name || ' ' ||
s.student_last_name AS full_name,
p.pgr_attendance,
p.pgr_inlab_submission_link,
p.pgr_instructor_assessment
FROM progress p
JOIN student s
ON p.pgr_student_id = s.student_id
JOIN lab_event e
ON p.pgr_event_id = e.le_id
JOIN lab_section ls
ON e.le_section_id = ls.lab_section_id;
CREATE OR REPLACE VIEW v_section_overview AS
SELECT
t.term_code,
ss.set_code AS set_name,
c.course_code,
ls.lab_section_id AS section_id,
COUNT(DISTINCT le.le_id) AS total_events,
AVG(CAST(p.pgr_instructor_assessment AS NUMERIC)) AS avg_instructor_assessment
FROM lab_section AS ls
JOIN course AS c ON c.course_code = ls.lab_course_code
JOIN term AS t ON t.term_code = ls.lab_term_code
JOIN student_set AS ss ON ss.set_code = ls.lab_set_code
LEFT JOIN lab_event AS le
ON le.le_section_id = ls.lab_section_id
AND le.course_code = ls.lab_course_code
AND le.term_code = ls.lab_term_code
LEFT JOIN progress AS p
ON p.pgr_event_id = le.le_id
GROUP BY
t.term_code,
ss.set_code,
c.course_code,
ls.lab_section_id;
--everything from section
SELECT *
FROM v_section_overview
ORDER BY term_code, set_name, course_code, section_id;
-- only sections that actually have events
SELECT *
FROM v_section_overview
WHERE total_events > 0
ORDER BY total_events DESC;
--This is the view for ta
SELECT *
FROM ta_view;