Хобрук: Ваш путь к мастерству в программировании

Столбец MySQL SUM из диапазонов дат

Как суммировать столбец из каждого диапазона дат.

Мне нужно суммировать столбец цен и столбец скидок, а затем получить их на основе строк даты.

В данном случае я выбрал order_id для 39 и см. таблицу ниже.

Вот таблица orders, которая у меня есть:

id      order_id        price       price_disc      date_transaction
1       39              537         25              2014-03-28 11:44:40
2       39              323         0               2014-03-28 16:12:42
3       38              309         11              2014-03-29 15:47:48
4       39              223         16              2014-03-29 19:22:28
5       37              304         19              2014-03-30 23:31:34
6       38              109         7               2014-03-31 09:12:16
7       38              223         0               2014-03-31 17:00:35
8       38              116         9               2014-04-01 20:32:27
9       38              296         0               2014-04-02 16:45:00
10      39              482         20              2014-04-03 12:42:03
11      39              371         12              2014-04-03 20:02:10
12      36              293         13              2014-04-03 21:09:45
13      39              299         0               2014-04-03 23:28:10
14      39              403         22              2014-04-04 08:06:13

Я хочу, чтобы результат был таким:

date_transaction    total_price     total_price_disc
2014-03-28          860             25
2014-03-29          223             16
2014-03-30          0               0
2014-03-31          0               0
2014-03-01          0               0
2014-03-02          0               0
2014-03-03          1152            32
2014-03-04          403             22
2014-03-05          0               0
2014-03-06          0               0

И это то, что я пробовал, но принимает результат только для date_transaction и total_price.

SELECT
DISTINCT DATE_FORMAT(date_transaction, '%Y-%m-%d') AS date_transaction,
COALESCE(SUM(price), 0) AS total_price
FROM orders
WHERE order_id = 39
AND date_transaction BETWEEN '2014-03-28' AND '2014-04-06' + INTERVAL 1 DAY
GROUP BY DATE_FORMAT(date_transaction, '%Y-%m-%d')
ORDER BY date_transaction ASC;
10.05.2016

Ответы:


1

Используйте функцию DATE() для даты.

SELECT
DISTINCT DATE(date_transaction) AS date_transaction,
SUM(price) AS total_price,
SUM(price_disc) AS total_price_disc
FROM orders
WHERE order_id = 39
AND DATE(date_transaction) BETWEEN '2014-03-28' AND '2014-04-06' + INTERVAL 1 DAY
GROUP BY DATE(date_transaction)
ORDER BY DATE(date_transaction) ASC;
10.05.2016
  • отлично, если вы хотите показать все order_ids, просто добавьте его в выбор, а также добавьте его в группу с помощью 10.05.2016
  • Новые материалы

    Понимание СТРУКТУРЫ ДАННЫХ И АЛГОРИТМА.
    Что такое структуры данных и алгоритмы? Термин «структура данных» используется для описания того, как данные хранятся, а алгоритм используется для описания того, как данные сжимаются. И данные, и..

    Как интегрировать модель машинного обучения на ios с помощью CoreMl
    С выпуском новых функций, таких как CoreML, которые упростили преобразование модели машинного обучения в модель coreML. Доступная модель машинного обучения, которую можно преобразовать в модель..

    Создание успешной организации по науке о данных
    "Рабочие часы" Создание успешной организации по науке о данных Как создать эффективную группу по анализу данных! Введение Это обзорная статья о том, как создать эффективную группу по..

    Технологии и проблемы будущей работы
    Изучение преимуществ и недостатков технологий в образовании В быстро меняющемся мире технологии являются решающим фактором в формировании будущего работы. Многие отрасли уже были..

    Игорь Минар из Google приедет на #ReactiveConf2017
    Мы рады сообщить еще одну замечательную новость: один из самых востребованных спикеров приезжает в Братиславу на ReactiveConf 2017 ! Возможно, нет двух других кланов разработчиков с более..

    Я собираюсь научить вас Python шаг за шагом
    Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

    Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
    Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..