22 lines
791 B
SQL
22 lines
791 B
SQL
-- STUDENT PERFORMANCE --
|
|
CREATE OR REPLACE VIEW vw_student_performance AS
|
|
SELECT s.id AS student_id,
|
|
p.name || ' ' || p.surname AS full_name,
|
|
s.group_id,
|
|
COUNT(st.id) FILTER (WHERE st.grade >= 3) AS passes,
|
|
COUNT(st.id) FILTER (WHERE st.grade < 3) AS fails,
|
|
ROUND(AVG(st.grade)::numeric, 2) AS avg_grade
|
|
FROM Students s
|
|
JOIN Physicals p ON s.person = p.passport_no
|
|
LEFT JOIN Statements st ON s.id = st.student_id
|
|
GROUP BY s.id, p.name, p.surname, s.group_id;
|
|
|
|
-- BIRTHDAYS ON THIS MONTH --
|
|
CREATE VIEW vw_birthdays_month AS
|
|
SELECT passport_no,
|
|
name || ' ' || surname AS full_name,
|
|
birthday,
|
|
EXTRACT(DAY FROM birthday) AS day_of_month
|
|
FROM Physicals
|
|
WHERE EXTRACT(MONTH FROM birthday) = EXTRACT(MONTH FROM NOW())
|
|
ORDER BY day_of_month; |