我尝试修复之前做过的SQL,并在执行此操作时遇到问题。 我有一个巨大的SQL女巫计算报告的SUM字段。带条件的SQL AVG
ATM SQL计数每辆车,即使当它是一辆电动汽车。
CASE
WHEN AVG(mov.TOTALCONSUMPTION) >0
AND AVG((moving.TOTALTIME)) >0
THEN ROUND(AVG(mov.TOTALCONSUMPTION)/(AVG(mov.TOTALTIME)/3600), 4)
ELSE 0
END ConsumptionPerHour,
我需要在我的SQL, 我尝试建造起来,但永诺拿到犯错条件Where vehicle.energysource = 0
。 “不是GROUP BY表达式”
CASE
WHEN AVG(mov.TOTALCONSUMPTION) >0
AND AVG((moving.TOTALTIME)) >0
AND vehicle.ENERGYSOURCE= 0
THEN ROUND(AVG(mov.TOTALCONSUMPTION)/(AVG(mov.TOTALTIME)/3600), 4)
ELSE 0
END ConsumptionPerHour,
我知道错误是什么意思,但我没有Idear如何解决这个问题。 任何人都有一个Idear我如何解决这个问题?
(顺便说一下它的Oracle SQL Developer,如果这是有益的)
编辑:
我确切的问题是,我不能把它放在哪儿部分becouse我的SQL要计算一些事情电汽车太像驱动的Killometers等。
我有燃料问题,因为我想计算平均值。可以说汽车1是一辆电动汽车和一辆柴油车。
的1一个具有0的消耗(becouse电动车)和20.
所述2.一个我的SQL消费现在计算总和(轿厢1 + CAR2 = 20)/汽车的量: 这使平均消费为10.
但我只需要所有非电动汽车的平均消费。
也许是noob问题,但我是一名实习生,只有在办公室,很抱歉,如果这是一个简单或不好解释的问题。
你说你需要'where vehicle.energysource = 0',但在你的第二个查询中你添加了'AND vd.FUEL = 0'。连接是什么?像scaisEdge说的,我们需要你的整个查询。 – HoneyBadger
对不起,我为了更好地理解,在第一个SQL中将Fuel名称更改为energysource。一样的。 – Ice
对不起,我忘了写,我的SQL必须做一些与电动车一样的东西,如计算Killometers等。给我一秒我编辑我的帖子 – Ice