滴滴大数据sql 取出累计值与1000差值最小的记录
1.题目
已知有表t_cost_detail包含id和money两列,id为自增,请累加计算money值,并求出累加值与1000差值最小的记录。
2.分析
本题主要是想找到累加值域1000差距最小的记录,也就是我们要对上述按照id进行排序并且累加,并且根据累加值1000差值求一个绝对值,然后绝对值最小的就这个记录对应的id就是最小的记录。主要考察了聚合函数开窗中,如果排序即进行累积求和sum()over(order by),然后考察绝对值函数abs(),最后考察排序函数开窗。
3. 创建表和写入数据
CREATE TABLE IF NOT EXISTS t_cost_detail (
id bigint, --id