Oracle:最大和最小日期之间的SUM值

时间:2018-10-31 15:33:45

标签: sql oracle date sum max

我正在努力查询,并认为我需要一些帮助。 我使用的数据示例: enter image description here

我需要对具有O(零)TYPE的每年的最大DATE之间的值求和。 结果应该是:

ng serve --prod --optimization=false

总和必须包括类型1或2的行,但是这些行不能用于按年份标识MAX DATE。 要明确的是,在我提供的数据中,如果我们有 enter image description here

那么2018年的最大DATE将是2018年5月7日,查询结果为

YEAR - SUM
2015 - 10
2016 - 20
2017 - 20
2018 - 35

确定每年的最大值不是问题,但要排除1和2个TYPE,然后对数据求和才是我要坚持的目标。

提前谢谢。

编辑:结果更正。

EDIT2:另一个示例

enter image description here

预期结果

YEAR - SUM
2015 - 10
2016 - 20
2017 - 20
2018 - 30

enter image description here

预期结果

YEAR - SUM
2015 - 10
2016 - 20
2017 - 20
2018 - 30

1 个答案:

答案 0 :(得分:2)

我不知道这与“最大日期”有什么关系。您似乎想要:

select to_char(date, 'YYYY') as yr, sum(value)
from t
where type = 0
group by to_char(date, 'YYYY')
order by to_char(date, 'YYYY');

编辑:

如果同时需要最大日期和总和,请使用条件聚合:

select to_char(date, 'YYYY') as yr, max(date) as max_date,
       sum(case when type = 0 then value end) as sum_type0
from t
group by to_char(date, 'YYYY')
order by to_char(date, 'YYYY');