Суммирование значений столбцов по группам по дате - PullRequest
0 голосов
/ 06 января 2019

У меня есть две таблицы:

Первый (Система):

ID  GROUP
---------
1   1
2   1
3
4   1

Секунда (значения):

SYS_ID  DATE VALUE
------------------
 1       23     3
 1       21     5
 3       20     7
 4       19     9
 3       19    11
 2       23    13

Мне нужно выяснить сумму VALUE в одном столбце для уникальной даты для всех SYS_ID в конкретной группе в указанном диапазоне дат.

лайк (для группы '1' и даты (> = 20 и <25)): </p>

DATE  VALUE
-----------
21     5
23    16

Самое близкое, что у меня есть

DATE  VALUE
-----------
21     5
23     3
23    13

с этим

select 
    val.date, val.value 
from 
    values as val 
inner join
    (select id from system where group = 1) as sys on (val.sys_id = sys.id) 
where 
    (val.date >= 21 and val.date < 25)
group by 
    val.date, sys.id

, который при попытке удалить 'SYS.ID' из 'GROUP BY' выдает ошибку, говорящую, что 'VAL.VALUE' должен быть в предложении 'GROUP BY'.

Есть предложения?

1 Ответ

0 голосов
/ 06 января 2019

Я думаю, вам просто нужно исправить group by и добавить sum():

select v.date, sum(v.value)
from values v inner join
     system s
     on s.id = val.sys_id
where s.group = 1 and v.date >= 21 and v.date < 25
group by val.date;
...