Вывести сумму ячеек в колонке рядом - MySQL
Формулировка задачи:
есть запрос , который возвращает:
data type
2900 0
336 1
я хочу обернуть этот запрос в подзапрос так, чтобы в результате вывести в первой колонке data, а во второй сумму этих дат для них обоих, тобишь, должно вернуться так
2900 3236
336 3236
что типо функции over(), уже сил нет просто...такое ощущение, что это нереально срадствами sql в mysql
SELECT COUNT(*) AS DATA, TYPE FROM t1 WHERE TYPE IN (0,1) GROUP BY TYPE
Решение задачи: «Вывести сумму ячеек в колонке рядом»
textual
Листинг программы
SELECT g.*, (SELECT COUNT(*) FROM t1) FROM (SELECT COUNT(*) AS DATA, TYPE FROM t1 WHERE TYPE IN (0,1) GROUP BY TYPE) g SELECT * FROM (SELECT COUNT(*) AS DATA, TYPE FROM t1 WHERE TYPE IN (0,1) GROUP BY TYPE) g CROSS JOIN (SELECT COUNT(*) AS TOTAL FROM t1) t
Объяснение кода листинга программы
Код выполняет двойной запрос SELECT.
- Внешний запрос SELECT выбирает все строки из первого подзапроса, который выбирает количество строк (COUNT(*)) и тип (TYPE) из таблицы
t1
, где TYPE равен 0 или 1, группируя результаты по TYPE. - Внутренний запрос SELECT выбирает общее количество строк (COUNT(*)) из таблицы
t1
. - Затем результаты внешнего запроса SELECT объединяются с результатами внутреннего запроса SELECT с помощью оператора CROSS JOIN.
Таким образом, для каждой строки в первом подзапросе будет выведено общее количество строк из таблицы
t1
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д