MySQL与ThinkPHP查询语句:按小时分钟分组计算平均值
使用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框架进行数据查询和分组计算平均值的两种方法,您可以根据实际情况选择适合的方法。
原文地址: https://www.cveoy.top/t/topic/qEMj 著作权归作者所有。请勿转载和采集!