私はこのサンプルデータを持っています:
Country | Members | Joined
USA | 250 | 1/1/2012
USA | 100 | 1/8/2012
Russia | 75 | 1/20/2012
USA | 150 | 2/10/2012
このデータをクエリすると、特定の月のすべてのレコードを集計したいと思います。クエリの結果は次のようになります。
Country | Members | Joined
USA | 350 | 1/2012
Russia | 75 | 1/2012
USA | 150 | 2/2012
十分に単純な選択として:
select country, count(*) as members , to_char(trunc(joined), 'MM-YYYY')
from table
group by country, to_char(trunc(joined), 'MM-YYYY')
そのクエリは必要な形式のデータを提供しますが、それを新しいピボット テーブルに挿入しようとすると、select ステートメントの to_char() が DATETIME 列に配置されているため、エラーが発生するという問題があります (エラー: ORA-01843 - 有効な月ではありません)
select の to_char() を to_date() に変更しても、まだ機能しません (同じエラー、ORA-01843 - 有効な月ではありません):
select country, count(*) as members, to_date(trunc(joined), 'MM-YYYY')
from table
group by country, to_date(trunc(joined), 'MM-YYYY')
「JOINED」列がDATETIME型の新しいテーブルに結果を挿入できるように、このクエリを変更する方法に関する提案はありますか?
ヒント/提案/コメントを事前にありがとう!