基于过滤器的SQL聚合列
我的数据有一个ID、日期和积分字段。每行代表ID在该日期获得的分数 我想创建类似于此的内容: ID|一月的积分|二月的积分|三月的积分 结果应该是基于过滤器的SQL聚合列,sql,sql-server,select,sum,Sql,Sql Server,Select,Sum,我的数据有一个ID、日期和积分字段。每行代表ID在该日期获得的分数 我想创建类似于此的内容: ID|一月的积分|二月的积分|三月的积分 结果应该是GROUP BYID。1月份获得的分数应该是该ID在1月份获得的所有分数的SUM 如何执行此操作?您可以使用条件聚合: select id, (case when date >= '2020-02-01' and date < '2020-03-01' then points else 0 end) as points_feb
GROUP BY
ID。1月份获得的分数应该是该ID在1月份获得的所有分数的SUM
如何执行此操作?您可以使用条件聚合:
select id,
(case when date >= '2020-02-01' and date < '2020-03-01' then points else 0 end) as points_feb,
(case when date >= '2020-03-01' and date < '2020-04-01' then points else 0 end) as points_mar
from t
group by id;
选择id,
(日期>='2020-02-01'和日期<'2020-03-01'的情况下,其他0点结束)作为2月的点,
(当日期>='2020-03-01'和日期<'2020-04-01'时,则为0点结束)作为点
从t
按id分组;