You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

单SQL查询实现不同车辆类型的机油总量统计求助

单SQL查询实现不同车辆类型的机油总量统计求助

嘿,我来帮你搞定这个问题!你想要在同一个查询里,统计出指定日期(01-10-2023)、指定用户(gift)下,**汽车(car)和摩托车(motorcycle)**各自的机油总量对吧?你之前写的SQL没有区分车型做针对性统计,所以没法得到你想要的分车型结果。

这里给你两种可行的方案,按需选择:

方案一:条件聚合(一行展示结果,匹配你要的输出格式)

这种方法用CASE WHEN配合SUM(),直接在一行里输出两种车型的总量:

SELECT 
    SUM(CASE WHEN vehicalType = 'car' THEN total ELSE 0 END) AS car_total,
    SUM(CASE WHEN vehicalType = 'motorcycle' THEN total ELSE 0 END) AS motorcycle_total,
    fullname,
    FDate
FROM paking_histories
WHERE 
    FDate = '01-10-2023' 
    AND oiltype = 'oil' 
    AND Fullname = 'gift'
GROUP BY fullname, FDate;

说明:

  • CASE WHEN会判断每条记录的vehicalType,只对符合条件的车型累加total值,不符合的则加0
  • 最后按fullname和FDate分组,确保结果严格对应指定的用户和日期

方案二:分组统计(多行展示结果,更灵活)

如果你能接受每行对应一种车型的结果,也可以用GROUP BY分组:

SELECT 
    vehicalType,
    SUM(total) AS total,
    fullname,
    FDate
FROM paking_histories
WHERE 
    FDate = '01-10-2023' 
    AND oiltype = 'oil' 
    AND Fullname = 'gift'
    AND vehicalType IN ('car', 'motorcycle') -- 只筛选需要的车型,避免无关数据
GROUP BY vehicalType, fullname, FDate;

说明:

  • 先过滤出目标车型,再按vehicalType分组统计,结果会是两行:一行对应car的总量,一行对应motorcycle的总量

另外提个小细节:你的表名写的是paking_histories,是不是拼写错误?应该是parking_histories吧?如果是的话记得修正表名哦。

备注:内容来源于stack exchange,提问作者Ammar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 10:24:29