我的数据库中的数据可以追溯到15年前,我想采用过去几年的平均值并将其与当前年份的数据进行比较。 我有一年的专栏,我在排除当前年份然后单独显示当前年份时难以获取数据的平均值。
编辑:这就是我的表[年份,数字],我试图达到[平均数字(除当前年份以外的所有年份),数字(当前年份)]答案 0 :(得分:1)
嗯,你的问题缺少很多信息,我不能在没有看到实际表格结构的情况下为你建立一个有效的查询,但是你可以根据实际的表/列名称调整它自己:
SELECT t.YourComparingColumn as this_year,s.last_year
FROM YourTable t
CROSS JOIN(SELECT AVG(t1.YourComparingColumn) as last_year FROM YourTable t1
WHERE t1.year < year(now())) s
WHERE t.year = year(now())
如果您希望按任何ID
或其他内容进行分组:
SELECT t.id,t.YourComparingColumn as this_year,s.last_year
FROM YourTable t
INNER JOIN(SELECT t1.id,AVG(t1.YourComparingColumn) as last_year FROM YourTable t1
WHERE t1.year < year(now())
GROUP BY t1.id) s
ON(t.id = s.id)
WHERE t.year = year(now())
如果每年有超过1行,你也应该加总。