Mysql 将以前的平均数与当前平均数进行比较

Mysql 将以前的平均数与当前平均数进行比较,mysql,sql,sqlite,Mysql,Sql,Sqlite,我有一张如下表: Date | Person | Amount_Spent 42500 A 100 42499 A 90 42498 A 95 我想要一个查询,可以将当前日期存储为excel日期,并向人们显示在给定日期42500(在本例中为100)花费的金额与过去3天的平均值(例如42500>=x>=42498)之间的差异,例如,95大于某个金额(即2) 在本例中,输出应为: Person A 请确保该解决方案能够处理这样一个事实,即

我有一张如下表:

Date | Person | Amount_Spent
42500  A        100 
42499  A        90 
42498  A        95
我想要一个查询,可以将当前日期存储为excel日期,并向人们显示在给定日期42500(在本例中为100)花费的金额与过去3天的平均值(例如42500>=x>=42498)之间的差异,例如,95大于某个金额(即2)

在本例中,输出应为:

Person
A   
请确保该解决方案能够处理这样一个事实,即将有多个不同的人,有些人不会每天花费,因此查询应该只对平均窗口中的值进行平均,我想它应该包括分组方式,作为将人分组在一起的一种方式


谢谢

让我们将其分为两部分:

计算给定日期的平均值:

从4250042499498中日期所在的表名称中选择AVGAmount_

检索符合条件的所有人员:

从表_name中选择人员 其中日期为4250042499498 和花费金额>=从42500、42499、42498中日期所在的表名称中选择AVGAmount_支出


这假设日期存储为整数,并且您希望在日期子集上计算平均值。只有那些在这些日期花费超过平均值的人才会被检索。

将你的数据库标记为.mysql、sql server或oracle等。你能告诉我们你已经尝试了什么吗?我不知道如何组合两个查询,不幸的是我没有任何有效的方法。我尝试过的所有方法都失败了。请阅读以下内容:如果每个人只需要一个条目,那么您可能希望将其更改为“选择不同”。这很好,但如果我没有弄错,AVG查询不是计算所有人的平均数吗?我只想让它与所讨论的人平均。有办法吗?为了澄清这一点,我试图根据一个人的具体平均支出来监控他/她每天的支出,并将其返还给所有这类人。