【发布时间】:2012-07-11 10:25:18
【问题描述】:
我有这个示例数据:
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 类型的新表中的任何建议?
提前感谢任何提示/建议/cmets!
【问题讨论】: