按日期按组对列值求和
Sum column values by group by date
我有这两个表:
第一个(系统):
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 & <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' 子句中。
有什么建议吗?
我认为您只需要修复 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;
我有这两个表:
第一个(系统):
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 & <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' 子句中。
有什么建议吗?
我认为您只需要修复 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;