esoe 1 year ago
parent
commit
6698e7c635
  1. 15
      dsk05-task.md
  2. BIN
      src/main/puml/ERD-moodle.png
  3. 37
      src/main/puml/moodle-erd.puml
  4. 86
      src/main/sql/script.sql

15
dsk05-task.md

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
Прошу сделать выгрузку по следующим вопросам:
1. Сколько человек приняло участие в тестировании (всего).
<code>
-- участвовали в тестировании (имеют попытку сдачи) --> 345
SELECT count(DISTINCT mdl_user.id)
FROM mdl_quiz_attempts
LEFT JOIN mdl_user
on mdl_quiz_attempts.userid=mdl_user.id
WHERE username LIKE "dsk05-%";
</code>
2. Результат по каждой группе тестов, на каждого специалиста
3. Время прохождения тестов по каждому специалисту (на каждую группу в отдельности и общее время на весь этап тестирования).
4. Список лиц, которые вообще не начали похождение тестов.
(сделал в заявке)

BIN
src/main/puml/ERD-moodle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

37
src/main/puml/moodle-erd.puml

@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
@startuml ERD-moodle
!define primary_key(x) <b><color:#b8861b><&key></color> x</b>
!define foreign_key(x) <b><color:#aaaaaa><&key></color> x</b>
!define column(x) <b><color:#efefef><&media-record></color> x</b>
!define table(x) entity x << (T, white) >>
title "Entity Relationship Diagram (ERD): moodle"
entity "mdl_user" as users
entity "mdl_quiz_attempt" as attempts
entity "mdl_quiz" as quizes
' Отношения
table(users){
primary_key(id):INTEGER
column(username):VARCHAR
column(email):VARCHAR
}
table(attempts){
primary_key(id):INTEGER
foreign_key(quiz):INTEGER
foreign_key(userid):INTEGER
column(attempt):INTEGER
column(timestart):DATE
column(timefinish):DATE
column(sumgrades):DECIMAL
}
table(quizes){
primary_key(id):INTEGER
column(name):VARCHAR
}
' Связи
users ||--|{ attempts
quizes ||--|{ attempts
@enduml

86
src/main/sql/script.sql

@ -1,7 +1,93 @@ @@ -1,7 +1,93 @@
-- назначенные аккаунты
SELECT id, username, email FROM mdl_user
where username LIKE "dsk05-%";
-- всего назначео аккаунтов --> 1121
SELECT count(*)
FROM mdl_user
WHERE username LIKE "dsk05-%";
-- участвовали в тестировании (имеют попытку сдачи) --> 345
SELECT count(DISTINCT mdl_user.id)
FROM mdl_quiz_attempts
LEFT JOIN mdl_user
on mdl_quiz_attempts.userid=mdl_user.id
WHERE username LIKE "dsk05-%";
-- перечень тестов, которые сдавали
SELECT mdl_quiz.name, mdl_quiz.id
FROM mdl_quiz_attempts
LEFT JOIN mdl_user on mdl_quiz_attempts.userid=mdl_user.id
LEFT JOIN mdl_quiz on mdl_quiz_attempts.quiz=mdl_quiz.id
WHERE username LIKE "dsk05-%"
GROUP BY mdl_quiz.id;
name id
Тестирование по п.32. Строительный контроль за общестроительными работами 19
40. Строительный контроль при строительстве, реконструкции и капитальном ремонте объектов нефтяной и газовой промышленности 27
1.2. Земляные работы 50
1.1. Подготовительные работы 51
1.4. Свайные работы 53
1.5. Искусственное закрепление грунтов 54
1.6. Монтаж и устройство бетонных, железобетонных, сборных бетонных, сборных железобетонных, и монолитных конструкций 55
1.8. Монтаж металлических конструкций 57
1.10. Защита строительных конструкций 59
46.3 Организация строительства (начальник ПТО, линейный работник) 104
49.1 Монтаж магистральных и промысловых трубопроводов 107
51. Контроль качества сварных соединений и изоляции 108
65. Особенности выполнения строительных работ в условиях вечной мерзлоты 111
-- Вывод результатов по одному тесту >> 19
-- пользователи имеющие результаты --> результаты без пустых строк
SELECT mdl_user.username,
quiz,
userid,
attempt,
FROM_UNIXTIME(timestart),
FROM_UNIXTIME(timefinish),
mdl_quiz_attempts.sumgrades,
DATE_FORMAT(FROM_UNIXTIME(timefinish - timestart), '%imin:%ssec') as "lost-time"
FROM mdl_quiz_attempts
LEFT JOIN mdl_user on mdl_quiz_attempts.userid=mdl_user.id
LEFT JOIN mdl_quiz on mdl_quiz_attempts.quiz=mdl_quiz.id
WHERE username LIKE "dsk05-%" and mdl_quiz.id in(19);
-- все пользователи --> результаты и пустые строки
SELECT mdl_user.username,
quiz,
userid,
attempt,
FROM_UNIXTIME(timestart),
FROM_UNIXTIME(timefinish),
mdl_quiz_attempts.sumgrades,
DATE_FORMAT(FROM_UNIXTIME(timefinish - timestart), '%imin:%ssec') as "lost-time"
FROM mdl_user
LEFT JOIN mdl_quiz_attempts on mdl_quiz_attempts.userid=mdl_user.id
LEFT JOIN mdl_quiz on mdl_quiz_attempts.quiz=mdl_quiz.id
WHERE username LIKE "dsk05-%" and mdl_quiz.id in(19);
-- Общее время потраченое на тестирование
--
SELECT mdl_user.username,
DATE_FORMAT(FROM_UNIXTIME(sum(timefinish - timestart)), '%hh:%imin:%ssec') as "Полное время тестирования",
count(*) as "Количество тестов"
FROM mdl_user
LEFT JOIN mdl_quiz_attempts on mdl_quiz_attempts.userid=mdl_user.id
LEFT JOIN mdl_quiz on mdl_quiz_attempts.quiz=mdl_quiz.id
WHERE username LIKE "dsk05-%"
GROUP BY mdl_user.username
HAVING DATE_FORMAT(FROM_UNIXTIME(sum(timefinish - timestart)), '%hh:%imin:%ssec') is not null;
-- все тесты
SELECT id, name FROM mdl_quiz;
-- все данные о попытках
SELECT id, quiz, userid, attempt, timestart, timefinish, sumgrades FROM mdl_quiz_attempts;
-- для отчета -->
WITH pure AS (
SELECT

Loading…
Cancel
Save