需要使用SQL语言来实现,假设有一个名为table的数据表,包含以下列:group_col_1, group_col_2, date_col, amount_col。
SELECT group_col_1, group_col_2, SUM(max_amount) FROM ( SELECT group_col_1, group_col_2, MAX(amount_col) AS max_amount FROM table WHERE date_col BETWEEN start_date AND end_date GROUP BY group_col_1, group_col_2 ) t GROUP BY group_col_1, group_col_2
其中start_date和end_date分别为指定的日期范围。该语句首先对date_col在指定日期范围内的记录进行过滤,然后在分组列group_col_1和group_col_2的基础上对amount_col取最大值,并将结果保存为子查询t。最后,按相同的分组列group_col_1和group_col_2对子查询t中的最大值进行求和,得到所需的结果。
上一篇:按分组列计算两行的平均值
下一篇:按分组列值进行日期差异计算