Вывести сумму ячеек в колонке рядом - MySQL

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

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

есть запрос
SELECT COUNT(*) AS DATA, TYPE FROM t1 WHERE TYPE IN (0,1) GROUP BY TYPE
, который возвращает: data type 2900 0 336 1 я хочу обернуть этот запрос в подзапрос так, чтобы в результате вывести в первой колонке data, а во второй сумму этих дат для них обоих, тобишь, должно вернуться так 2900 3236 336 3236 что типо функции over(), уже сил нет просто...такое ощущение, что это нереально срадствами sql в mysql

Решение задачи: «Вывести сумму ячеек в колонке рядом»

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.

  1. Внешний запрос SELECT выбирает все строки из первого подзапроса, который выбирает количество строк (COUNT(*)) и тип (TYPE) из таблицы t1, где TYPE равен 0 или 1, группируя результаты по TYPE.
  2. Внутренний запрос SELECT выбирает общее количество строк (COUNT(*)) из таблицы t1.
  3. Затем результаты внешнего запроса SELECT объединяются с результатами внутреннего запроса SELECT с помощью оператора CROSS JOIN. Таким образом, для каждой строки в первом подзапросе будет выведено общее количество строк из таблицы t1.

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


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

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

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