我需要对具有O(零)TYPE的每年的最大DATE之间的值求和。 结果应该是:
ng serve --prod --optimization=false
总和必须包括类型1或2的行,但是这些行不能用于按年份标识MAX DATE。 要明确的是,在我提供的数据中,如果我们有
那么2018年的最大DATE将是2018年5月7日,查询结果为
YEAR - SUM
2015 - 10
2016 - 20
2017 - 20
2018 - 35
确定每年的最大值不是问题,但要排除1和2个TYPE,然后对数据求和才是我要坚持的目标。
提前谢谢。
编辑:结果更正。
EDIT2:另一个示例
预期结果
YEAR - SUM
2015 - 10
2016 - 20
2017 - 20
2018 - 30
预期结果
YEAR - SUM
2015 - 10
2016 - 20
2017 - 20
2018 - 30
答案 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');