开发者社区> 问答> 正文

SQL计算最近7天的平均付款金额

我有一张有2列访问过的表格并且已支付的金额

visited amount paid

2018-04-01 100 2018-04-02 200 2018-04-03 300 我想获取过去7天(今天和过去6天)的平均付款额以及访问过的结果以及所支付的金额:

输出:

visited amount average of last 7 days

2018-04-01 100 100 2018-04-02 200 150 2018-04-03 300 200 说明:

Row 1 : average amount = 100/1 = 100 Row 2 : average amount = (100 + 200)/2 = 150 Row 3 : average amount = (100 + 200 + 300)/3 = 200 我正在尝试使用MySQL或Oracle数据库,一切都很好。

问题来源于stack overflow

展开
收起
保持可爱mmm 2019-11-18 10:12:14 1006 0
1 条回答
写回答
取消 提交回答
  • 您需要使用相关的子查询(如果访问之间存在间隙,则窗口功能将无济于事):

    SELECT visited, amount_paid, ( SELECT AVG(amount_paid) FROM t AS x WHERE x.visited >= t.visited - INTERVAL 6 DAY AND x.visited <= t.visited ) AS 7_day_avg FROM t

    2019-11-18 10:48:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载