WITH Question_max AS
(SELECT name_subject,
name_question,
ROUND(SUM(is_correct) / COUNT(testing.answer_id) * 100, 2) AS Сложность
FROM subject
JOIN question ON subject.subject_id = question.subject_id
JOIN testing ON question.question_id = testing.question_id
LEFT JOIN answer ON testing.answer_id = answer.answer_id
GROUP BY name_subject, name_question
ORDER BY 1, 3 DESC, 2
LIMIT 1),
Question_min AS
(SELECT name_subject,
name_question,
ROUND(SUM(is_correct) / COUNT(testing.answer_id) * 100, 2) AS Сложность
FROM subject
JOIN question ON subject.subject_id = question.subject_id
JOIN testing ON question.question_id = testing.question_id
LEFT JOIN answer ON testing.answer_id = answer.answer_id
GROUP BY name_subject, name_question
ORDER BY 1, 3, 2
LIMIT 1)
SELECT name_subject, name_question, 'самый легкий' AS Сложность FROM Question_max
UNION
SELECT name_subject, name_question, 'самый сложный' AS Сложность FROM Question_min;
Задание
Автор - Лариса Фернандес
Найти вопрос, с самой большой успешностью выполнения - "самый легкий" и вопрос, с самой маленькой успешностью выполнения - "самый сложный". (Подробно про успешность на этом шаге). Вывести предмет, эти два вопроса и указание - самый сложный или самый легкий это вопрос. Сначала вывести самый легкий запроса, потом самый сложный.
Фрагмент логической схемы базы данныхРезультат:
+--------------+-------------------------------------------------------------------------+---------------+
| name_subject | name_question | Сложность |
+--------------+-------------------------------------------------------------------------+---------------+
| Основы SQL | Условие, по которому отбираются записи, задается после ключевого слова: | самый легкий |
| Основы SQL | Для внутреннего соединения таблиц используется оператор: | самый сложный |
+--------------+-------------------------------------------------------------------------+---------------+
Текст задания (чтобы не прокручивать страницу) :
Найти вопрос, на который было дано максимальное количество правильных ответов - "самый легкий" и вопрос, на который было дано минимальное количество правильных ответов - "самый сложный". Вывести предмет, эти два вопроса и указание - самый сложный или самый легкий это вопрос. Сначала вывести самый легкий запроса, потом самый сложный.
Введите SQL запрос