私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 行を取得することを目指していますorder_total
。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: 式がありません
この質問の解決策を使用しようとしましたが、私のシナリオにはあまり適していないと思います (これが私の group by 式の由来です)。