mysql语句中想要查询某一月每一天日期的平均值
为了查询某一月份每一天的平均值,你可以使用以下SQL查询语句。这里假设你有一个表格data_table,它有一个日期时间列date_column和一个需要计算平均值的数值列value_column。
SELECTDATE_FORMAT(date_column, '%Y-%m-%d') AS date,AVG(value_column) AS average_value
FROMdata_table
WHEREDATE_FORMAT(date_column, '%Y-%m') = 'YYYY-MM' -- 替换为你想查询的年份和月份
GROUP BYdate;
1.在这个查询中,DATE_FORMAT(date_column, ‘%Y-%m’) 函数用于选出特定月份的数据,‘YYYY-MM’ 应该替换为你想查询的年月,例如 ‘2023-03’ 表示2023年3月。GROUP BY 子句确保每一天都有一个平均值输出。
确保你的date_column列是日期或日期时间类型,这样DATE_FORMAT函数才能正确工作。如果你的表格和列名不同,请相应地替换它们。
2.在SSM(Spring MVC + Spring + MyBatis)框架中,你可以在Dao层编写如下方法来接收并执行这个查询:
@Service
public class YourDao {public List<Map<String, Object>> getSelectMonth(@Param("startMonth")String startMonth, @Param("siteId")Integer siteId);}
3.在Mapper XML文件中,你需要定义上述查询的映射:
<mapper namespace="your_namespace"><select id="getSelectMonth" resultType="map">SELECTDATE_FORMAT(date_column, '%Y-%m-%d') AS date,AVG(value_column1) AS average_value1,AVG(value_column2) AS average_value2FROMdata_tableWHEREDATE_FORMAT(date_column, '%Y-%m') = #{startDate} -- 替换为你想查询的年份和月份GROUP BYdate</select></mapper>
4.在Controller层,你可以调用Service层的方法:
@Controller
@RequestMapping("/your_path")
public class YourController {@Autowiredprivate YourService yourService;@ResponseBody@RequestMapping(value = "/getMonthdata")public String getAverageValues(@RequestParam("startDate") String startDate,Model model) {// 获取当天日期Date date = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); String startDate= sdf.format(date);System.out.println("startDate================="+startDate);List<Map<String, Object>> listMonth= yourService.getSelectMonth(startDate);JSONObject jsonObject = new JSONObject();// 倒序排列 //Collections.reverse(listMonth);jsonObject.put("listMonth", listMonth);// 获取当月 进口采集的每天氨浓度的平均全部数据List<Object> listcomeJun = new ArrayList<Object>();for (int i = 0; i < listMonth.size(); i++) {//获取map的value值,用get("key") 、key代表键值对的键的名称listcomeJun.add(listMonth.get(i).get("average_value1"));}jsonObject.put("listcomeJun", listcomeJun );
System.out.println("jsonObject.toString()====某月的每一天数据平均值数据=====" + jsonObject.toString());return jsonObject.toString();}
}