Как я могу суммировать некоторые данные в таблице MySQL на основе подмножеств данных, определенных в поле даты и времени? - PullRequest
0 голосов
/ 30 апреля 2020

Допустим, у меня есть эта таблица:

id  name        date              qty
1 bananas 2020-04-01 00:00:00     20
2 apples  2020-04-02 00:00:00     15
3 apples  2020-04-05 00:00:00     15
4 bananas 2020-04-06 00:00:00     10
5 bananas 2020-04-15 00:00:00     40
6 bananas 2020-04-16 00:00:00     20
7 apples  2020-04-17 00:00:00     15
8 apples  2020-04-17 00:00:00      5

Что я хочу достичь, так это набор результатов с общим количеством каждого фрукта до 2020-04-06 в поле InitialStock и общим количеством каждого фрукта после 2020-04-17 как FinalStock

1 Ответ

0 голосов
/ 30 апреля 2020

Похоже, вы хотите условное агрегирование:

select
    name, 
    sum(case when date <= '2020-04-06' then qty end) initial_stock,
    sum(case when date >= '2020-04-17' then qty end) final_stock
from mytable
group by name

Для каждого name это дает сумму qty до 4 апреля и после 17 апреля в двух отдельных столбцах.

...