我Orders
表如下所示:按日期甲骨文集團的訂單,總結總
order_id (number)
order_total (number)
created_date (timestamp)
status (varchar2)
我的目標是獲得一組行,每一行代表在今後所有的訂單,所以我想按日期對訂單進行分組,並獲得order_total
的總和。我還通過僅選擇最近30天的訂單來限制結果。
要澄清,例如,如果在過去30天內有30個訂單都在獨特的日子裏,那麼我會在結果中得到30行。另一個例子:如果在7月30日有10個訂單,並且7月31日只有1個訂單,那麼我打算在結果集中獲得2行,第一行中的所有10個訂單總計order_total
,第二行將會當然在31日有單一訂單的order_total
。
我迄今爲止嘗試:
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解決,但我不認爲它很適合我的情況下(這是我的表達組來自的地方)。
爲什麼在'select'列表中有'order_id';你期望在那裏展示總計10個訂單的單行?您可能需要刪除它,或者用集合函數替換它。 –
是的我同意它不應該在那裏,刪除它謝謝。現在錯誤改成了'ORA-00936:缺少的表達式'。 – RandomCoder