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

时间:2015-01-14 17:11:43

标签: 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   

请确保解决方案能够应对这样一个事实,即会有多个不同的人,有些人也不会每天都花费,所以查询应该只对平均窗口中的值进行平均,我猜应该包括GROUP BY作为将人们聚集在一起的方式。

谢谢!

1 个答案:

答案 0 :(得分:0)

让我们把它分成两部分:

  1. 计算给定日期的AVG:

    SELECT AVG(Amount_Spent)FROM table_name WHERE DATE IN(42500,42499,42498);

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

    SELECT Person FROM table_name 日期(42500,42499,42498) AND Amount_Spent> =(SELECT AVG(Amount_Spent)FROM table_name WHERE DATE IN(42500,4249,42498));

  3. 这假设日期存储为整数,并且您希望在日期子集上计算平均值。只检索那些日期超过平均值的人员。