| 1 | -- VIEW 1
|
|---|
| 2 | CREATE OR REPLACE VIEW vw_student_advanced_portfolio AS
|
|---|
| 3 | WITH StudentStats AS (
|
|---|
| 4 | SELECT
|
|---|
| 5 | m.StudentID,
|
|---|
| 6 | COUNT(DISTINCT m.ID) AS Total_Mentorships,
|
|---|
| 7 | COUNT(DISTINCT CASE WHEN t.Status = 1 THEN t.ID END) AS Total_Completed_Tasks,
|
|---|
| 8 | COUNT(DISTINCT CASE WHEN t.Status != 1 AND t.EndDate < CURRENT_DATE THEN t.ID END) AS Total_Overdue_Tasks
|
|---|
| 9 | FROM Mentorship m
|
|---|
| 10 | LEFT JOIN Task t ON m.ID = t.MentorshipID
|
|---|
| 11 | GROUP BY m.StudentID
|
|---|
| 12 | ),
|
|---|
| 13 | SubjectStats AS (
|
|---|
| 14 | SELECT us.UserID, COUNT(DISTINCT us.SubjectID) AS Enrolled_Subjects_Count
|
|---|
| 15 | FROM User_Subject us
|
|---|
| 16 | GROUP BY us.UserID
|
|---|
| 17 | )
|
|---|
| 18 | SELECT
|
|---|
| 19 | u.ID AS StudentID,
|
|---|
| 20 | u.Name::text || ' ' || u.Surname::text AS Student_FullName,
|
|---|
| 21 | f.Name AS Faculty_Name,
|
|---|
| 22 | COALESCE(ss.Enrolled_Subjects_Count, 0) AS Enrolled_Subjects_Count,
|
|---|
| 23 | COALESCE(st.Total_Mentorships, 0) AS Total_Mentorships,
|
|---|
| 24 | COALESCE(st.Total_Completed_Tasks, 0) AS Total_Completed_Tasks,
|
|---|
| 25 | COALESCE(st.Total_Overdue_Tasks, 0) AS Total_Overdue_Tasks
|
|---|
| 26 | FROM "User" u
|
|---|
| 27 | JOIN Faculty f ON u.FacultyID = f.ID
|
|---|
| 28 | JOIN StudentStats st ON u.ID = st.StudentID
|
|---|
| 29 | LEFT JOIN SubjectStats ss ON u.ID = ss.UserID;
|
|---|
| 30 |
|
|---|
| 31 |
|
|---|
| 32 | -- VIEW 2
|
|---|
| 33 | CREATE OR REPLACE VIEW vw_mentor_conversion_and_success_matrix AS
|
|---|
| 34 | WITH MentorTaskStats AS (
|
|---|
| 35 | SELECT
|
|---|
| 36 | m.MentorID,
|
|---|
| 37 | COUNT(DISTINCT m.ID) AS Total_Mentorships,
|
|---|
| 38 | COUNT(t.ID) AS Total_Tasks_Assigned,
|
|---|
| 39 | SUM(CASE WHEN t.Status = 1 THEN 1 ELSE 0 END) AS Successful_Mentorships
|
|---|
| 40 | FROM Mentorship m
|
|---|
| 41 | LEFT JOIN Task t ON m.ID = t.MentorshipID
|
|---|
| 42 | GROUP BY m.MentorID
|
|---|
| 43 | ),
|
|---|
| 44 | MentorTopicStats AS (
|
|---|
| 45 | SELECT
|
|---|
| 46 | ts.MentorID,
|
|---|
| 47 | COUNT(ts.ID) AS Total_Proposed_Topics,
|
|---|
| 48 | COUNT(CASE WHEN ts.isAvailable = false THEN 1 END) AS Accepted_Topics
|
|---|
| 49 | FROM TopicSuggestion ts
|
|---|
| 50 | GROUP BY ts.MentorID
|
|---|
| 51 | )
|
|---|
| 52 | SELECT
|
|---|
| 53 | mks.MentorID,
|
|---|
| 54 | u.Name::text || ' ' || u.Surname::text AS Mentor_Name,
|
|---|
| 55 | COALESCE(mts.Total_Proposed_Topics, 0) AS Total_Proposed_Topics,
|
|---|
| 56 | COALESCE(mts.Accepted_Topics, 0) AS Accepted_Topics,
|
|---|
| 57 | -- Фалбак 1 при пресметка
|
|---|
| 58 | ROUND((COALESCE(mts.Accepted_Topics, 0)::numeric / COALESCE(NULLIF(mts.Total_Proposed_Topics, 0), 1)) * 100, 2) AS Topics_Acceptance_Percentage,
|
|---|
| 59 | COALESCE(mks.Total_Mentorships, 0) AS Total_Mentorships,
|
|---|
| 60 | COALESCE(mks.Total_Tasks_Assigned, 0) AS Total_Tasks_Assigned,
|
|---|
| 61 | COALESCE(mks.Successful_Mentorships, 0) AS Successful_Mentorships,
|
|---|
| 62 | RANK() OVER(
|
|---|
| 63 | ORDER BY
|
|---|
| 64 | COALESCE(mks.Total_Mentorships, 0) DESC,
|
|---|
| 65 | -- Фалбак 1 при рангирање
|
|---|
| 66 | ROUND((COALESCE(mts.Accepted_Topics, 0)::numeric / COALESCE(NULLIF(mts.Total_Proposed_Topics, 0), 1)) * 100, 2) DESC NULLS LAST
|
|---|
| 67 | ) AS Mentor_Rank_Position
|
|---|
| 68 | FROM MentorTaskStats mks
|
|---|
| 69 | JOIN "User" u ON mks.MentorID = u.ID
|
|---|
| 70 | LEFT JOIN MentorTopicStats mts ON mks.MentorID = mts.MentorID;
|
|---|
| 71 |
|
|---|
| 72 |
|
|---|
| 73 | -- VIEW 3
|
|---|
| 74 | CREATE OR REPLACE VIEW vw_student_progress_and_critical_alerts AS
|
|---|
| 75 | WITH TaskAggregations AS (
|
|---|
| 76 | SELECT
|
|---|
| 77 | t.MentorshipID,
|
|---|
| 78 | COUNT(t.ID) AS Total_Tasks,
|
|---|
| 79 | COUNT(CASE WHEN t.Status = 1 THEN t.ID END) AS Completed_Tasks,
|
|---|
| 80 | COUNT(CASE WHEN t.EndDate < CURRENT_DATE AND t.Status != 1 THEN t.ID END) AS Critical_Overdue_Tasks_Count,
|
|---|
| 81 | STRING_AGG(
|
|---|
| 82 | CASE WHEN t.EndDate < CURRENT_DATE AND t.Status != 1 THEN
|
|---|
| 83 | t.Description::text || ' (' ||
|
|---|
| 84 | CASE
|
|---|
| 85 | WHEN t.Status = 0 THEN 'Активна'
|
|---|
| 86 | WHEN t.Status = 2 THEN 'Прегледана'
|
|---|
| 87 | WHEN t.Status = 3 THEN 'Одбиена'
|
|---|
| 88 | ELSE 'Непознат Статус'
|
|---|
| 89 | END || ')'
|
|---|
| 90 | ELSE NULL END, ' | '
|
|---|
| 91 | ) AS Overdue_Tasks_List
|
|---|
| 92 | FROM Task t
|
|---|
| 93 | GROUP BY t.MentorshipID
|
|---|
| 94 | )
|
|---|
| 95 | SELECT
|
|---|
| 96 | m.ID AS MentorshipID,
|
|---|
| 97 | stu.Name::text || ' ' || stu.Surname::text AS Student_Name,
|
|---|
| 98 | men.Name::text || ' ' || men.Surname::text AS Mentor_Name,
|
|---|
| 99 | ts.Name AS Topic_Name,
|
|---|
| 100 | COALESCE(ta.Total_Tasks, 0) AS Total_Tasks,
|
|---|
| 101 | COALESCE(ta.Completed_Tasks, 0) AS Completed_Tasks,
|
|---|
| 102 | -- Фалбак 1 при делење
|
|---|
| 103 | ROUND((COALESCE(ta.Completed_Tasks, 0)::numeric / COALESCE(NULLIF(ta.Total_Tasks, 0), 1)) * 100, 2) AS Progress_Percentage,
|
|---|
| 104 | COALESCE(ta.Critical_Overdue_Tasks_Count, 0) AS Critical_Overdue_Tasks_Count,
|
|---|
| 105 | COALESCE(ta.Overdue_Tasks_List, 'Нема задоцнети задачи') AS Overdue_Tasks_List
|
|---|
| 106 | FROM Mentorship m
|
|---|
| 107 | JOIN "User" stu ON m.StudentID = stu.ID
|
|---|
| 108 | JOIN "User" men ON m.MentorID = men.ID
|
|---|
| 109 | JOIN TopicSuggestion ts ON m.TopicSuggestionID = ts.ID
|
|---|
| 110 | LEFT JOIN TaskAggregations ta ON m.ID = ta.MentorshipID;
|
|---|
| 111 |
|
|---|
| 112 |
|
|---|
| 113 | -- VIEW 4
|
|---|
| 114 | CREATE OR REPLACE VIEW vw_university_academic_hierarchy AS
|
|---|
| 115 | WITH SubjectStats AS (
|
|---|
| 116 | SELECT
|
|---|
| 117 | ts.SubjectID,
|
|---|
| 118 | COUNT(DISTINCT us.UserID) AS Enrolled_Students_In_Subject,
|
|---|
| 119 | COUNT(DISTINCT ts.ID) AS Total_Topics_Suggested,
|
|---|
| 120 | COUNT(DISTINCT m.ID) AS Active_Mentorships_Generated
|
|---|
| 121 | FROM TopicSuggestion ts
|
|---|
| 122 | LEFT JOIN User_Subject us ON ts.SubjectID = us.SubjectID
|
|---|
| 123 | LEFT JOIN Mentorship m ON ts.ID = m.TopicSuggestionID
|
|---|
| 124 | GROUP BY ts.SubjectID
|
|---|
| 125 | )
|
|---|
| 126 | SELECT
|
|---|
| 127 | un.Name AS University_Name,
|
|---|
| 128 | f.Name AS Faculty_Name,
|
|---|
| 129 | sp.Name AS StudyProgram_Name,
|
|---|
| 130 | sub.Name AS Subject_Name,
|
|---|
| 131 | COALESCE(ss.Enrolled_Students_In_Subject, 0) AS Enrolled_Students_In_Subject,
|
|---|
| 132 | COALESCE(ss.Total_Topics_Suggested, 0) AS Total_Topics_Suggested,
|
|---|
| 133 | COALESCE(ss.Active_Mentorships_Generated, 0) AS Active_Mentorships_Generated
|
|---|
| 134 | FROM University un
|
|---|
| 135 | JOIN Faculty f ON un.ID = f.UniversityID
|
|---|
| 136 | JOIN StudyProgram sp ON f.ID = sp.FacultyID
|
|---|
| 137 | JOIN Subject_StudyProgram ssp ON sp.ID = ssp.StudyProgramID
|
|---|
| 138 | JOIN Subject sub ON ssp.SubjectID = sub.ID
|
|---|
| 139 | LEFT JOIN SubjectStats ss ON sub.ID = ss.SubjectID;
|
|---|
| 140 |
|
|---|
| 141 |
|
|---|
| 142 | -- VIEW 5
|
|---|
| 143 | CREATE OR REPLACE VIEW vw_system_mentorship_integrity_audit AS
|
|---|
| 144 | WITH TaskCount AS (
|
|---|
| 145 | SELECT t.MentorshipID, COUNT(t.ID) AS Total_Tasks_Generated
|
|---|
| 146 | FROM Task t GROUP BY t.MentorshipID
|
|---|
| 147 | )
|
|---|
| 148 | SELECT
|
|---|
| 149 | m.ID AS MentorshipID,
|
|---|
| 150 | COALESCE(stu.Name::text || ' ' || stu.Surname::text, 'ИЗБРИШAН СТУДЕНТ') AS Student_Details,
|
|---|
| 151 | CASE WHEN stu.ID IS NOT NULL THEN 'Valid' ELSE 'Missing' END AS Student_Exists,
|
|---|
| 152 | COALESCE(men.Name::text || ' ' || men.Surname::text, 'ИЗБРИШAН МЕНТОР') AS Mentor_Details,
|
|---|
| 153 | CASE WHEN men.ID IS NOT NULL THEN 'Valid' ELSE 'Missing' END AS Mentor_Exists,
|
|---|
| 154 | COALESCE(ts.Name, 'Нема доделено tema') AS Topic_Name,
|
|---|
| 155 | COALESCE(sub.Name, 'Непознат Предмет') AS Subject_Name,
|
|---|
| 156 | COALESCE(tc.Total_Tasks_Generated, 0) AS Total_Tasks_Generated,
|
|---|
| 157 | CASE
|
|---|
| 158 | WHEN stu.ID IS NULL AND men.ID IS NULL THEN 'CRITICAL: Целосно изолиран запис (Ghost Record)'
|
|---|
| 159 | WHEN stu.ID IS NULL THEN 'ERROR: Недостасува студент'
|
|---|
| 160 | WHEN men.ID IS NULL THEN 'ERROR: Недостасува ментор'
|
|---|
| 161 | WHEN COALESCE(tc.Total_Tasks_Generated, 0) = 0 THEN 'WARNING: Валидни корисници, но неактивно менторство (0 задачи)'
|
|---|
| 162 | ELSE 'HEALTHY: Системот е стабилен'
|
|---|
| 163 | END AS System_Health_Status
|
|---|
| 164 | FROM Mentorship m
|
|---|
| 165 | LEFT JOIN "User" stu ON m.StudentID = stu.ID
|
|---|
| 166 | LEFT JOIN "User" men ON m.MentorID = men.ID
|
|---|
| 167 | LEFT JOIN TopicSuggestion ts ON m.TopicSuggestionID = ts.ID
|
|---|
| 168 | LEFT JOIN Subject sub ON ts.SubjectID = sub.ID
|
|---|
| 169 | LEFT JOIN TaskCount tc ON m.ID = tc.MentorshipID;
|
|---|
| 170 |
|
|---|
| 171 |
|
|---|
| 172 | -- 6
|
|---|
| 173 | --CREATE OR REPLACE VIEW vw_mentorship_typology_analytics AS
|
|---|
| 174 | --WITH MentorshipTaskCounts AS (
|
|---|
| 175 | -- SELECT m.MentorshipTypeID, COUNT(t.ID) AS Total_Tasks_Generated
|
|---|
| 176 | -- FROM Mentorship m
|
|---|
| 177 | -- JOIN Task t ON m.ID = t.MentorshipID
|
|---|
| 178 | -- GROUP BY m.MentorshipTypeID
|
|---|
| 179 | --)
|
|---|
| 180 | --SELECT
|
|---|
| 181 | -- mtp.Type AS Mentorship_Type,
|
|---|
| 182 | -- ma.Name AS Defining_Attribute,
|
|---|
| 183 | -- COUNT(DISTINCT m.ID) AS Total_Active_Mentorships,
|
|---|
| 184 | -- COUNT(DISTINCT m.StudentID) AS Unique_Students_Involved,
|
|---|
| 185 | -- COUNT(DISTINCT m.MentorID) AS Unique_Mentors_Engaged,
|
|---|
| 186 | -- COALESCE(mtc.Total_Tasks_Generated, 0) AS Total_Tasks_Generated
|
|---|
| 187 | --FROM MentorshipType mtp
|
|---|
| 188 | --JOIN MentorshipAttribute ma ON mtp.MentorshipAttributeID = ma.ID
|
|---|
| 189 | --LEFT JOIN Mentorship m ON mtp.ID = m.MentorshipTypeID
|
|---|
| 190 | --LEFT JOIN MentorshipTaskCounts mtc ON mtp.ID = mtc.MentorshipTypeID
|
|---|
| 191 | --GROUP BY mtp.ID, mtp.Type, ma.Name, mtc.Total_Tasks_Generated;
|
|---|
| 192 |
|
|---|
| 193 |
|
|---|
| 194 | -- VIEW 6
|
|---|
| 195 | CREATE OR REPLACE VIEW vw_chat_analytics AS
|
|---|
| 196 | SELECT
|
|---|
| 197 | c.ID AS chat_id,
|
|---|
| 198 |
|
|---|
| 199 | c.Title,
|
|---|
| 200 |
|
|---|
| 201 | st.Name || ' ' || st.Surname
|
|---|
| 202 | AS student_name,
|
|---|
| 203 |
|
|---|
| 204 | mt.Name || ' ' || mt.Surname
|
|---|
| 205 | AS mentor_name,
|
|---|
| 206 |
|
|---|
| 207 | lm.Content AS last_message,
|
|---|
| 208 |
|
|---|
| 209 | lm.Timestamp AS last_message_time,
|
|---|
| 210 |
|
|---|
| 211 | unread.unread_count,
|
|---|
| 212 |
|
|---|
| 213 | total.total_messages
|
|---|
| 214 |
|
|---|
| 215 | FROM Chat c
|
|---|
| 216 |
|
|---|
| 217 | JOIN "User" st
|
|---|
| 218 | ON c.StudentID = st.ID
|
|---|
| 219 |
|
|---|
| 220 | JOIN "User" mt
|
|---|
| 221 | ON c.MentorID = mt.ID
|
|---|
| 222 |
|
|---|
| 223 | LEFT JOIN LATERAL (
|
|---|
| 224 |
|
|---|
| 225 | SELECT
|
|---|
| 226 | m.Content,
|
|---|
| 227 | m.Timestamp
|
|---|
| 228 |
|
|---|
| 229 | FROM Message m
|
|---|
| 230 |
|
|---|
| 231 | WHERE m.ChatID = c.ID
|
|---|
| 232 |
|
|---|
| 233 | ORDER BY m.Timestamp DESC
|
|---|
| 234 |
|
|---|
| 235 | LIMIT 1
|
|---|
| 236 |
|
|---|
| 237 | ) lm ON true
|
|---|
| 238 |
|
|---|
| 239 | LEFT JOIN (
|
|---|
| 240 |
|
|---|
| 241 | SELECT
|
|---|
| 242 | ChatID,
|
|---|
| 243 | COUNT(*) AS unread_count
|
|---|
| 244 |
|
|---|
| 245 | FROM Message
|
|---|
| 246 |
|
|---|
| 247 | WHERE isRead = false
|
|---|
| 248 |
|
|---|
| 249 | GROUP BY ChatID
|
|---|
| 250 |
|
|---|
| 251 | ) unread
|
|---|
| 252 |
|
|---|
| 253 | ON unread.ChatID = c.ID
|
|---|
| 254 |
|
|---|
| 255 | LEFT JOIN (
|
|---|
| 256 |
|
|---|
| 257 | SELECT
|
|---|
| 258 | ChatID,
|
|---|
| 259 | COUNT(*) AS total_messages
|
|---|
| 260 |
|
|---|
| 261 | FROM Message
|
|---|
| 262 |
|
|---|
| 263 | GROUP BY ChatID
|
|---|
| 264 |
|
|---|
| 265 | ) total
|
|---|
| 266 |
|
|---|
| 267 | ON total.ChatID = c.ID;
|
|---|
| 268 |
|
|---|
| 269 |
|
|---|
| 270 |
|
|---|
| 271 | -- VIEW 7
|
|---|
| 272 | CREATE OR REPLACE VIEW vw_mentor_workload_summary AS
|
|---|
| 273 | WITH PendingTasks AS (
|
|---|
| 274 | SELECT m.MentorID, COUNT(t.ID) AS Pending_Tasks
|
|---|
| 275 | FROM Mentorship m
|
|---|
| 276 | JOIN Task t ON m.ID = t.MentorshipID
|
|---|
| 277 | WHERE t.Status = 0
|
|---|
| 278 | GROUP BY m.MentorID
|
|---|
| 279 | )
|
|---|
| 280 | SELECT
|
|---|
| 281 | m.ID AS MentorID,
|
|---|
| 282 | m.Name::text || ' ' || m.Surname::text AS Mentor_Name,
|
|---|
| 283 | (SELECT COUNT(*) FROM Mentorship m2 WHERE m2.MentorID = m.ID) AS Total_Mentorships,
|
|---|
| 284 | COALESCE(pt.Pending_Tasks, 0) AS Pending_Tasks
|
|---|
| 285 | FROM "User" m
|
|---|
| 286 | LEFT JOIN PendingTasks pt ON m.ID = pt.MentorID
|
|---|
| 287 | GROUP BY m.ID, m.Name, m.Surname, pt.Pending_Tasks;
|
|---|
| 288 |
|
|---|
| 289 |
|
|---|
| 290 | -- VIEW 8
|
|---|
| 291 | CREATE OR REPLACE VIEW vw_subject_topic_conversion AS
|
|---|
| 292 | WITH TopicCounts AS (
|
|---|
| 293 | SELECT
|
|---|
| 294 | ts.SubjectID,
|
|---|
| 295 | COUNT(ts.ID) AS Total_Suggestions,
|
|---|
| 296 | COUNT(CASE WHEN ts.isAvailable = false THEN ts.ID END) AS Accepted_Topics
|
|---|
| 297 | FROM TopicSuggestion ts
|
|---|
| 298 | GROUP BY ts.SubjectID
|
|---|
| 299 | )
|
|---|
| 300 | SELECT
|
|---|
| 301 | s.Name AS Subject_Name,
|
|---|
| 302 | COALESCE(tc.Total_Suggestions, 0) AS Total_Suggestions,
|
|---|
| 303 | COALESCE(tc.Accepted_Topics, 0) AS Accepted_Topics,
|
|---|
| 304 | ROUND((COALESCE(tc.Accepted_Topics, 0)::numeric / COALESCE(NULLIF(tc.Total_Suggestions, 0), 1)) * 100, 2) AS Conversion_Percentage
|
|---|
| 305 | FROM Subject s
|
|---|
| 306 | LEFT JOIN TopicCounts tc ON s.ID = tc.SubjectID;
|
|---|
| 307 |
|
|---|
| 308 |
|
|---|
| 309 | -- VIEW 9
|
|---|
| 310 | CREATE OR REPLACE VIEW vw_university_faculty_basic_stats AS
|
|---|
| 311 | WITH ProgramCounts AS (
|
|---|
| 312 | SELECT sp.FacultyID, COUNT(DISTINCT sp.ID) AS Total_Study_Programs
|
|---|
| 313 | FROM StudyProgram sp
|
|---|
| 314 | GROUP BY sp.FacultyID
|
|---|
| 315 | )
|
|---|
| 316 | SELECT
|
|---|
| 317 | un.Name AS University_Name,
|
|---|
| 318 | f.Name AS Faculty_Name,
|
|---|
| 319 | COALESCE(pc.Total_Study_Programs, 0) AS Total_Study_Programs
|
|---|
| 320 | FROM Faculty f
|
|---|
| 321 | JOIN University un ON f.UniversityID = un.ID
|
|---|
| 322 | LEFT JOIN ProgramCounts pc ON f.ID = pc.FacultyID;
|
|---|
| 323 |
|
|---|
| 324 |
|
|---|
| 325 |
|
|---|
| 326 |
|
|---|
| 327 | -- VIEW 10
|
|---|
| 328 |
|
|---|
| 329 | CREATE OR REPLACE VIEW vw_notification_center AS
|
|---|
| 330 | SELECT
|
|---|
| 331 | n.ID,
|
|---|
| 332 | n.Content,
|
|---|
| 333 | n.Timestamp,
|
|---|
| 334 | n.isRead,
|
|---|
| 335 |
|
|---|
| 336 | u.Name || ' ' || u.Surname
|
|---|
| 337 | AS notified_user,
|
|---|
| 338 |
|
|---|
| 339 | nt.Type,
|
|---|
| 340 |
|
|---|
| 341 | msg.Content AS message_content,
|
|---|
| 342 |
|
|---|
| 343 | co.Comment AS opinion_comment
|
|---|
| 344 |
|
|---|
| 345 | FROM Notification n
|
|---|
| 346 |
|
|---|
| 347 | JOIN "User" u
|
|---|
| 348 | ON n.UserToNotifyID = u.ID
|
|---|
| 349 |
|
|---|
| 350 | LEFT JOIN Notification_Type nt
|
|---|
| 351 | ON n.ID = nt.NotificationID
|
|---|
| 352 |
|
|---|
| 353 | LEFT JOIN Message msg
|
|---|
| 354 | ON n.MessageID = msg.ID
|
|---|
| 355 |
|
|---|
| 356 | LEFT JOIN CommentOpinion co
|
|---|
| 357 | ON n.CommentOpinionID = co.ID;
|
|---|
| 358 |
|
|---|
| 359 |
|
|---|
| 360 |
|
|---|
| 361 | -- TESTING VIEWS
|
|---|
| 362 | SELECT * FROM vw_student_advanced_portfolio LIMIT 100;
|
|---|
| 363 | SELECT * FROM vw_mentor_conversion_and_success_matrix LIMIT 10;
|
|---|
| 364 | SELECT * FROM vw_student_progress_and_critical_alerts LIMIT 10;
|
|---|
| 365 | SELECT * FROM vw_university_academic_hierarchy LIMIT 10;
|
|---|
| 366 | SELECT * FROM vw_system_mentorship_integrity_audit LIMIT 10;
|
|---|
| 367 | --SELECT * FROM vw_mentorship_typology_analytics LIMIT 10;
|
|---|
| 368 | SELECT * FROM vw_chat_analytics LIMIT 10;
|
|---|
| 369 | SELECT * FROM vw_mentor_workload_summary LIMIT 10;
|
|---|
| 370 | SELECT * FROM vw_subject_topic_conversion LIMIT 10;
|
|---|
| 371 | SELECT * FROM vw_university_faculty_basic_stats LIMIT 10;
|
|---|
| 372 | SELECT * FROM vw_notification_center LIMIT 50;
|
|---|
| 373 |
|
|---|
| 374 | -- VIEW 2: Ќе ги подреди по ранг на успешни теми
|
|---|
| 375 | SELECT * FROM vw_mentor_conversion_and_success_matrix LIMIT 50;
|
|---|
| 376 |
|
|---|
| 377 | -- VIEW 3: Ќе ги извади само оние што имаат КРИТИЧНИ доцнења
|
|---|
| 378 | SELECT * FROM vw_student_progress_and_critical_alerts ORDER BY critical_overdue_tasks_count DESC LIMIT 10;
|
|---|
| 379 |
|
|---|
| 380 | -- VIEW 5: Ќе ги извади прво оние каде што СИСТЕМОТ Е СТАБИЛЕН или има ГРЕШКА
|
|---|
| 381 | SELECT * FROM vw_system_mentorship_integrity_audit ORDER BY system_health_status DESC LIMIT 10;
|
|---|
| 382 |
|
|---|
| 383 |
|
|---|
| 384 | -- ANALYSIS
|
|---|
| 385 | -- 1
|
|---|
| 386 | EXPLAIN ANALYZE
|
|---|
| 387 | SELECT * FROM vw_student_advanced_portfolio WHERE studentid = 5446279;
|
|---|
| 388 | -- 2
|
|---|
| 389 | EXPLAIN ANALYZE
|
|---|
| 390 | SELECT * FROM vw_mentor_conversion_and_success_matrix WHERE mentorid = 2082114;
|
|---|
| 391 |
|
|---|
| 392 | -- 3
|
|---|
| 393 | EXPLAIN ANALYZE
|
|---|
| 394 | SELECT * FROM vw_student_progress_and_critical_alerts WHERE mentorshipid = 1;
|
|---|
| 395 |
|
|---|
| 396 | -- 4
|
|---|
| 397 | EXPLAIN ANALYZE
|
|---|
| 398 | SELECT * FROM vw_university_academic_hierarchy WHERE subject_name = 'Математика 1';
|
|---|
| 399 |
|
|---|
| 400 |
|
|---|
| 401 |
|
|---|
| 402 |
|
|---|
| 403 |
|
|---|
| 404 |
|
|---|
| 405 |
|
|---|
| 406 |
|
|---|