Вычисление среднего значения за месяц и возврат единственного среднего - PullRequest
0 голосов
/ 27 апреля 2018

Я вычисляю среднее значение за месяц, которое должно возвращать единственное среднее значение, поэтому я получил среднее значение. Это должно быть отношение один к многим между таблицей грузовых автомобилей и заказами, и я использую маппер строк для пружины jdbc

Select truckId,  truckCode,  purchasedDate, 
descriptions, orderId, petrolQty, orderDate, avg(avgPetrolQty) as avgPerMonth, truckId from (
SELECT  t.truckId, t.truckCode, t.purchasedDate, t.descriptions, o.orderId, o.petrolQty, o.orderDate,
COALESCE(monthname(o.orderDate),'Not Announced') as month,
IFNULL (avg(o.petrolQty),0) as avgPetrolQty  
from truck t left join orderz o 
on t.truckId = o.truckId 
where t.truckId = 3
group by  t.truckCode, o.orderId, o.orderDate
) group by truckCode, orderId

поэтому у меня есть такие заказы, которые относятся к truckId 3 вот полный результат

TRUCKID     TRUCKCODE   PURCHASEDDATE   DESCRIPTION     ORDERID     PETROLQTY   ORDERDATE   AVGPERMONTH     TRUCKID  
3   BY2354  2005-05-01  BLACK TOYOTA 15 1   13.0    2006-01-21  13.0    3
3   BY2354  2005-05-01  BLACK TOYOTA 15 2   53.0    2002-01-21  53.0    3

Что дает два avgPermonth Как я могу написать лучше SQL и мой sql выше дает в среднем за месяц как 100

, что неверно, даже когда я добавляю больше ордеров, он не меняется до тех пор, пока после 4 или более новых ордеров не получается какое-то нелогичное среднее. Что я делаю неправильно, и важно, чтобы мой sql получил полную информацию о обеих таблицах orderId может быть опущен, если это влияет на решение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...