SpotFire技术问询:如何在任意时间区间内汇总指定列数据
任意时间区间汇总指定列数据的解决方案
电子表格工具(Excel/Google Sheets)方案
完全不需要写脚本,用自带的SUMIFS函数就能搞定,这就是为多条件求和设计的:
- 假设日期列是A列,成本列是B列,要算2021-01-01到2021-06-01的总成本,直接用公式:
=SUMIFS(B:B, A:A, ">="&DATE(2021,1,1), A:A, "<="&DATE(2021,6,1)) - 要支持任意日期范围,把固定日期换成单元格引用就行。比如把起始日期存在C1,结束日期存在D1,公式改成:
=SUMIFS(B:B, A:A, ">="&C1, A:A, "<="&D1)
之后只要改C1和D1的日期,结果会自动更新。
数据库SQL方案
同样不用额外写脚本,用聚合函数加日期过滤就能实现:
假设你的表叫daily_records,日期字段是record_date,成本列是cost,查询语句如下:
SELECT SUM(cost) AS total_cost FROM daily_records WHERE record_date BETWEEN '2021-01-01' AND '2021-06-01';
要换日期的话,直接修改BETWEEN后面的两个日期值就行,要是在应用里用,还能做参数化查询,动态传日期,不用改代码结构。
什么时候需要写脚本?
只有当你需要自动周期性执行汇总(比如每天凌晨生成上月成本报表),或者要处理特殊日期逻辑(比如按自定义财季、节假日排除规则汇总),且现有工具函数搞不定的时候,才需要写脚本(比如Python Pandas、Shell脚本这类)。但就你当前的需求——手动指定任意日期区间汇总——用上面的基础方法足够,完全没必要写脚本。
内容的提问来源于stack exchange,提问作者Connor Han
相关产品推荐
相关产品推荐

