Посчитать оценки - MySQL

Узнай цену своей работы

Формулировка задачи:

Привет всем Есть таблица

Ученик Оценка

Иванов 1 Петров 2 Иванов 2 Иванов 2 Иванов 1 Иванов 5 Петров 5 Сидоров 1 Сидоров 3 Сидоров 2 Петров 4 Иванов 2 Как построить запрос, чтобы посчитать для каждого человека оценки? Пример: Ученик кол-во_1 Кол-во_2 кол-во 3 кол-во_4 кол-во_5 Иванов 1 1 2 0 0 Сидоров 2 1 0 0 0 Петров 0 0 2 3 1

Решение задачи: «Посчитать оценки»

textual
Листинг программы
WITH q AS (SELECT 'Иванов' AS name, 1 AS a FROM dual UNION ALL
SELECT 'Петров', 2 FROM dual UNION ALL
SELECT 'Иванов', 2 FROM dual UNION ALL
SELECT 'Иванов', 2 FROM dual UNION ALL
SELECT 'Иванов', 1 FROM dual UNION ALL
SELECT 'Иванов', 5 FROM dual UNION ALL
SELECT 'Петров', 5 FROM dual UNION ALL
SELECT 'Сидоров', 1 FROM dual UNION ALL
SELECT 'Сидоров', 3 FROM dual UNION ALL
SELECT 'Сидоров', 2 FROM dual UNION ALL
SELECT 'Петров', 4 FROM dual UNION ALL
SELECT 'Иванов', 2 FROM dual)
 
SELECT name 
     , SUM(CASE WHEN a = 1 THEN 1 ELSE 0 END) AS count_1
     , SUM(CASE WHEN a = 2 THEN 1 ELSE 0 END) AS count_2
     , SUM(CASE WHEN a = 3 THEN 1 ELSE 0 END) AS count_3
     , SUM(CASE WHEN a = 4 THEN 1 ELSE 0 END) AS count_4
     , SUM(CASE WHEN a = 5 THEN 1 ELSE 0 END) AS count_5               
 FROM q
GROUP BY name

Объяснение кода листинга программы

  1. В этом коде используется конструкция WITH, которая позволяет создать временную таблицу q с данными для дальнейшего использования в запросе.
  2. В таблице q создаются строки с именами и оценками.
  3. Затем выполняется запрос, который считает количество оценок каждого значения для каждого имени.
  4. Результатом запроса будет таблица с именами и количеством оценок каждого значения.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5
Похожие ответы