按日期分组汇总列值

时间:2019-01-06 15:08:47

标签: sql h2db

我有这两个表:

第一个(系统):

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)):

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

在尝试从“ GROUP BY”中删除“ SYS.ID”时抛出错误,提示“ VAL.VALUE”必须位于“ GROUP BY”子句中。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我认为您只需要修复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;