#oracle #oracle11g
#Oracle #oracle11g
Вопрос:
У меня есть таблица со следующими столбцами
OrderID Number
ProductID Number
Order_date Datetime
Qty number
Как я могу получить среднее количество размещенных заказов в день для диапазона дат. Я хочу знать среднее количество заказов, размещенных в день с 31 октября по 4 ноября, включая оба дня.
Заранее спасибо.
Ответ №1:
Ваш вопрос немного противоречив, он сначала запрашивает среднее количество заказов в день, а затем запрашивает средние заказы (что предполагает, что вам нужно среднее количество, а не среднее количество заказов)
Это должно дать вам среднее количество за каждый день для указанного вами диапазона (однако вставьте ваше имя таблицы):
SELECT TRUNC(order_date) AS order_day,
AVG(qty) AS daily_orders
FROM <table>
WHERE order_date
BETWEEN TO_DATE('31-OCT-2011 00:00:00', 'DD-MON-YYYY HH24:MI:SS')
AND TO_DATE('04-NOV-2011 23:59:59', 'DD-MON-YYYY HH24:MI:SS')
GROUP BY TRUNC(order_date);
Если вы на самом деле запрашиваете среднее количество заказов (не среднее количество) в день за указанный вами период времени, тогда вам нужно будет выполнить:
SELECT AVG(orders_per_day)
FROM (
SELECT TRUNC(order_date), count(*) AS orders_per_day
FROM <table>
WHERE order_date
BETWEEN TO_DATE('31-OCT-2011 00:00:00', 'DD-MON-YYYY HH24:MI:SS')
AND TO_DATE('04-NOV-2011 23:59:59', 'DD-MON-YYYY HH24:MI:SS')
GROUP BY TRUNC(order_date)
);
Надеюсь, это поможет…