求年平均值

Snipaste_2024-01-22_17-15-02.png我的一个数据在数据库是按月份存的 我现在想求出参数所选年月的该年份的数据平均值以及前一个年份数据平均值 应该在sql怎么写呀

FineReport iHYelRsB 发布于 2024-1-22 17:09 (编辑于 2024-1-22 17:15)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2024-1-22 17:10(编辑于 2024-1-22 17:20)

SqlServer?oracle?mysql?

----------

假设你数据库日期格式是yyyyMM格式(日期控件返回也是yyyyMM格式的字符串),SQL参考如下

select '上年' [TYPE_],avg(数据) FROM TABLENAME WHERE 日期>='${FORMAT(YEARDELTA(DATEINYEAR(FORMAT(CONCATENATE(日期控件,01),"yyyy-MM-dd"),1),-1),"yyyyMM")}' AND 日期<='${FORMAT(YEARDELTA(DATEINYEAR(FORMAT(CONCATENATE(日期控件,01),"yyyy-MM-dd"),-1),-1),"yyyyMM")}'

union all 

select '本年' [TYPE_],avg(数据) FROM TABLENAME WHERE 日期>='${FORMAT(FORMAT(DATEINYEAR(CONCATENATE(日期控件,01),"yyyy-MM-dd"),1),"yyyyMM")}' AND 日期<='${FORMAT(FORMAT(DATEINYEAR(CONCATENATE(日期控件,01),"yyyy-MM-dd"),-1),"yyyyMM")}'

  • iHYelRsB iHYelRsB(提问者) mysql 吧 不一定非要在数据集里实现在表里实现也可以 有什么好的办法吗?
    2024-01-22 17:11 
  • Z4u3z1 Z4u3z1 回复 iHYelRsB(提问者) 参考上面补充的SQL
    2024-01-22 17:20 
  • iHYelRsB iHYelRsB(提问者) 回复 Z4u3z1 这个\'本年\' [TYPE_]还有\'上年\' [TYPE_]是啥呀
    2024-01-22 17:24 
最佳回答
0
华莉星宸Lv7高级互助
发布于2024-1-22 17:19(编辑于 2024-1-22 17:23)

每个格子写一个数据集

参数所选年月的本年

select avg(值)

from 表

where left(年月份字段,4) = left('${参数}',4)

去年

where left(年月份字段,4) = left('${参数}',4)-1

 

  • iHYelRsB iHYelRsB(提问者) 如果是去年的就在where left(年月份字段,4)=left(\'${参数}\'-1,4)吗?
    2024-01-22 17:22 
  • 华莉星宸 华莉星宸 回复 iHYelRsB(提问者) 看上面~! where left(年月份字段,4) = left(\'${参数}\',4)-1
    2024-01-22 17:23 
  • iHYelRsB iHYelRsB(提问者) 回复 华莉星宸 好的好的谢谢
    2024-01-22 17:25 
  • 2关注人数
  • 189浏览人数
  • 最后回答于:2024-1-22 17:23
    请选择关闭问题的原因
    确定 取消
    返回顶部