使用MySQL和ThinkPHP查询数据并分组计算平均值

本文将展示如何使用原始MySQL语句和ThinkPHP框架查询z_data_hours表中特定measure_id数据,并按小时分钟分组计算Leq_Data的平均值。

原始MySQL语句

SELECT 
    DATE_FORMAT(datetime, '%H:%i') AS time,
    AVG(Leq_Data) AS average
FROM 
    z_data_hours
WHERE 
    measure_id IN (1, 2, 3, 4)
GROUP BY 
    DATE_FORMAT(datetime, '%H:%i')

ThinkPHP格式的查询语句

$measureIds = [1, 2, 3, 4];
$result = Db::table('z_data_hours')
            ->field('DATE_FORMAT(datetime, ' %H:%i ') AS time, AVG(Leq_Data) AS average')
            ->where('measure_id', 'in', $measureIds)
            ->group('DATE_FORMAT(datetime, ' %H:%i ')')
            ->select();

说明:

  • 以上代码使用DATE_FORMAT函数将datetime字段格式化为%H:%i格式,表示小时和分钟。
  • AVG(Leq_Data)计算Leq_Data字段的平均值。
  • GROUP BY语句按小时分钟进行分组。
  • measure_id IN (1, 2, 3, 4)筛选特定measure_id的数据。

总结:

本文展示了使用原始MySQL语句和ThinkPHP框架进行数据查询和分组计算平均值的两种方法,您可以根据实际情况选择适合的方法。

MySQL与ThinkPHP查询语句:按小时分钟分组计算平均值

原文地址: https://www.cveoy.top/t/topic/qEMj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录