41 | | u.user_name, |
42 | | u.user_surname, |
43 | | GROUP_CONCAT(e.result SEPARATOR ', ') AS results |
44 | | FROM |
45 | | Users u |
46 | | JOIN |
47 | | Experiment e ON u.user_id = e.user_id |
48 | | WHERE |
49 | | u.professor_username = 'profesor_username' -- Тука треба да се замени со корисничкото име |
50 | | GROUP BY |
51 | | u.user_name, u.user_surname; |
| 38 | s.student_id, |
| 39 | u.user_name || ' ' || u.user_surname AS full_name, |
| 40 | e.experiment_id, |
| 41 | e.result, |
| 42 | up.participation_timestamp AS participation_time |
| 43 | FROM Student s |
| 44 | JOIN "User" u ON s.student_id = u.user_id |
| 45 | JOIN UserParticipatesInExperiment up ON s.student_id = up.user_id |
| 46 | JOIN Experiment e ON up.experiment_id = e.experiment_id |
| 47 | ORDER BY u.user_name, up.participation_timestamp DESC; |
| 48 | |
| 83 | === Извештај за најчесто користени хемиски елементи во екпериментите === |
| 84 | |
| 85 | {{{#!sql |
| 86 | SELECT |
| 87 | el.element_name, |
| 88 | COUNT(r.reaction_id) AS total_uses |
| 89 | FROM Elements el |
| 90 | JOIN Reaction r ON el.element_id = r.element1_id OR el.element_id = r.element2_id |
| 91 | GROUP BY el.element_name |
| 92 | ORDER BY total_uses DESC; |
| 93 | |
| 94 | }}} |
| 95 | |
| 96 | === Извештај за најчесто реализирани експерименти === |
| 97 | |
| 98 | {{{#!sql |
| 99 | SELECT |
| 100 | e.experiment_id, |
| 101 | e.result, |
| 102 | COUNT(up.user_id) AS student_participation |
| 103 | FROM Experiment e |
| 104 | JOIN UserParticipatesInExperiment up ON e.experiment_id = up.experiment_id |
| 105 | GROUP BY e.experiment_id, e.result |
| 106 | ORDER BY student_participation DESC; |
| 107 | |
| 108 | }}} |
| 109 | |
| 110 | === Извештај за студенти кои никогаш не учествувале во екперименти === |
| 111 | |
| 112 | {{{#!sql |
| 113 | SELECT |
| 114 | s.student_id, |
| 115 | u.user_name || ' ' || u.user_surname AS full_name |
| 116 | FROM Student s |
| 117 | JOIN "User" u ON s.student_id = u.user_id |
| 118 | LEFT JOIN UserParticipatesInExperiment up ON s.student_id = up.user_id |
| 119 | WHERE s.teacher_id = :teacher_id -- Замени со ID на професорот |
| 120 | AND up.user_id IS NULL; |
| 121 | |
| 122 | }}} |
| 123 | |
| 124 | === Извештај за студенти кои имаат учествувано во помалку од одреден број екперименти === |
| 125 | |
| 126 | {{{#!sql |
| 127 | SELECT |
| 128 | s.student_id, |
| 129 | u.user_name || ' ' || u.user_surname AS full_name, |
| 130 | COUNT(up.experiment_id) AS total_experiments |
| 131 | FROM Student s |
| 132 | JOIN "User" u ON s.student_id = u.user_id |
| 133 | LEFT JOIN UserParticipatesInExperiment up ON s.student_id = up.user_id |
| 134 | GROUP BY s.student_id, full_name |
| 135 | HAVING COUNT(up.experiment_id) < 3 |
| 136 | ORDER BY total_experiments ASC; |
| 137 | |
| 138 | }}} |
| 139 | |
| 140 | === Извештај за број на студенти по професор и просечен број на екперименти по студент === |
| 141 | |
| 142 | {{{#!sql |
| 143 | SELECT |
| 144 | t.teacher_id, |
| 145 | u.user_name || ' ' || u.user_surname AS full_name, |
| 146 | COUNT(DISTINCT s.student_id) AS total_students, |
| 147 | COUNT(up.experiment_id) AS total_experiments, |
| 148 | ROUND( |
| 149 | COUNT(up.experiment_id) * 1.0 / NULLIF(COUNT(DISTINCT s.student_id), 0), 2 |
| 150 | ) AS avg_experiments_per_student |
| 151 | FROM Teacher t |
| 152 | JOIN "User" u ON t.teacher_id = u.user_id |
| 153 | LEFT JOIN Student s ON t.teacher_id = s.teacher_id |
| 154 | LEFT JOIN UserParticipatesInExperiment up ON s.student_id = up.user_id |
| 155 | GROUP BY t.teacher_id, full_name |
| 156 | ORDER BY avg_experiments_per_student DESC; |
| 157 | |
| 158 | }}} |
| 159 | |
| 160 | === Извештај за број на студентите бројот на прегледани хемиски елементи и лабараториска опрема === |
| 161 | |
| 162 | {{{#!sql |
| 163 | SELECT |
| 164 | s.student_id, |
| 165 | u.user_name || ' ' || u.user_surname AS full_name, |
| 166 | COUNT(DISTINCT ue.element_id) AS total_elements_viewed, |
| 167 | COUNT(DISTINCT ul.equipment_id) AS total_lab_equipment_viewed |
| 168 | FROM Student s |
| 169 | JOIN "User" u ON s.student_id = u.user_id |
| 170 | LEFT JOIN UserViewsElement ue ON s.student_id = ue.user_id |
| 171 | LEFT JOIN UserViewsLabEquipment ul ON s.student_id = ul.user_id |
| 172 | GROUP BY s.student_id, full_name |
| 173 | ORDER BY total_elements_viewed DESC, total_lab_equipment_viewed DESC; |
| 174 | |
| 175 | }}} |
| 176 | |
| 177 | |
| 178 | |
| 179 | |