Подсчет в связанных БД - MySQL
Формулировка задачи:
Имеются 2 таблицы. Нужно посчитать кол-во книг написанное мужчинами и женщинами соотвественно.
Решение задачи: «Подсчет в связанных БД»
textual
Листинг программы
SELECT SUM(summ), SUM(sumf) FROM ( SELECT CASE a.sex WHEN 'm' THEN 1 ELSE 0 END AS summ, CASE a.sex WHEN 'f' THEN 1 ELSE 0 END AS sumf FROM avt a JOIN book b ON b.a_id = a.a_id ) t;
Объяснение кода листинга программы
- В данном коде используется язык SQL для выполнения запроса к базе данных.
- Запрос состоит из двух частей: внешнего и внутреннего запроса.
- Внешний запрос SELECT используется для выбора суммы значений из таблицы.
- Внутренний запрос (подзапрос) используется для создания временной таблицы с двумя столбцами:
summиsumf. - В подзапросе используется оператор CASE для создания условий, при которых значения столбцов
summиsumfбудут равны 1 или 0. - Внутренний запрос соединяется с таблицей
avtпо столбцуa_idс помощью оператора JOIN. - В результате внутреннего запроса создается временная таблица с двумя столбцами:
summиsumf, содержащими суммы значений из таблицыavtдля мужчин и женщин соответственно. - Внешний запрос SELECT используется для выбора суммы значений из временной таблицы.
- Результатом выполнения запроса будет две суммы: общая сумма значений
summи общая сумма значенийsumf.