技术问询:在H2数据库中获取单辆卡车跨年份月度平均汽油消耗量
计算单辆卡车跨年份的月度平均汽油消耗量
看起来你已经写出了能精准满足需求的SQL语句!我帮你把相关内容整理清楚,再补充下逻辑说明:
你的核心需求是:在H2数据库中统计单辆卡车的月度平均汽油消耗量,不区分年份——也就是把所有年份里同一个月份的数据合并,计算出该月份的单一平均值。
你当前使用的SQL语句:
SELECT t.truckCode, COALESCE(MONTHNAME(orderDate), 'Not Announced') AS month, IFNULL(AVG(petrolQty), 0) AS avgPetrolQty FROM truck t LEFT JOIN orderz o ON t.truckId = o.truckId GROUP BY t.truckCode, COALESCE(MONTHNAME(orderDate), 'Not Announced') ORDER BY 1, 2
执行后得到的结果示例(表格格式):
| TRUCKCODE | MONTH | AVGPETROLQTY |
|---|---|---|
| T001 | January | 125.5 |
| T001 | February | 130.2 |
| T001 | Not Announced | 0.0 |
| T002 | March | 142.0 |
逻辑拆解
这条SQL完美命中了你的需求点:
- 用
MONTHNAME(orderDate)提取日期的月份名称,直接忽略年份信息,确保所有年份的同一个月份数据会被归为同一组 LEFT JOIN保证即使某辆卡车没有对应月份的订单记录,也能被查询到;COALESCE把无日期的情况标记为Not Announced,IFNULL把无消耗数据的平均值设为0,避免空值影响展示- 按
truckCode和月份名称分组,最终聚合出每辆卡车每个月份(跨所有年份)的平均汽油消耗量
内容的提问来源于stack exchange,提问作者valik
相关产品推荐
相关产品推荐

