Моя Orders
таблица выглядит следующим образом:заказов группы Oracle по дате и сумме общая
order_id (number)
order_total (number)
created_date (timestamp)
status (varchar2)
Моя цель состоит в том, чтобы получить набор строк, где каждая строка представляет все заказы на эту дату, так что я пытаюсь группировать заказы по дате и получать сумму order_total
. Я также ограничиваю результаты только выбором заказов за последние 30 дней.
Чтобы уточнить, например, если в течение последних 30 дней в течение уникальных дней было 30 заказов, я бы получил 30 строк в результате. Другой пример: если 30 июля было 10 заказов и только 1 заказ, то я собираюсь получить 2 строки в результирующем наборе с order_total
, суммированными для всех 10 заказов в первой строке, а вторая строка будет конечно, имеют order_total
одного заказа 31-го.
Моя попытка до сих пор:
select
sum(order_total) total_amount,
to_char(created_date, 'DD/MM/YYYY') grouped_date
from
orders
where
status = 'Complete' and
created_date >= (sysdate-30)
group by
to_char(created_date, 'DD'), to_char(created_date, 'MM'), to_char(created_date, 'YYYY')
order by
created_date asc
Это дает ошибку:
ORA-00936: missing expression
Я пытался использовать решение от this question, но я не думаю, что это вполне подходит для моего сценария (это то, откуда я пришел из моей группы по выражению).
Почему у вас есть 'order_id' в списке' select'; что вы ожидаете показать там за одну строку, которая суммирует 10 заказов? Вам нужно либо удалить это, либо заменить его на агрегатную функцию. –
Да, я согласен, что этого не должно быть, удалил это спасибо. Теперь ошибка изменилась на «ORA-00936: отсутствует выражение». – RandomCoder