我有一张如下表格:
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作为将人们聚集在一起的方式。
谢谢!
答案 0 :(得分:0)
让我们把它分成两部分:
计算给定日期的AVG:
SELECT AVG(Amount_Spent)FROM table_name WHERE DATE IN(42500,42499,42498);
检索符合条件的所有人员:
SELECT Person FROM table_name 日期(42500,42499,42498) AND Amount_Spent> =(SELECT AVG(Amount_Spent)FROM table_name WHERE DATE IN(42500,4249,42498));
这假设日期存储为整数,并且您希望在日期子集上计算平均值。只检索那些日期超过平均值的人员。