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

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

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

есть запрос
Листинг программы
  1. 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
Листинг программы
  1. SELECT g.*, (SELECT COUNT(*) FROM t1)
  2. FROM
  3.   (SELECT COUNT(*) AS DATA, TYPE FROM t1 WHERE TYPE IN (0,1) GROUP BY TYPE) g
  4.  
  5. SELECT *
  6. FROM
  7.   (SELECT COUNT(*) AS DATA, TYPE FROM t1 WHERE TYPE IN (0,1) GROUP BY TYPE) g
  8.   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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы