【问题标题】:Sum column values by group by date按日期按组对列值求和
【发布时间】:2019-01-06 15:08:47
【问题描述】:

我有这两张表:

第一(系统):

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

我需要在指定日期范围内特定组中的所有 SYS_ID 的唯一日期的一列中找出 VALUE 的总和。

喜欢(对于组 '1' 和日期 (>=20 &

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”子句中。

有什么建议吗?

【问题讨论】:

    标签: sql h2db


    【解决方案1】:

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

    【讨论】: