2012-07-19 82 views
2

不工作我有一个表GROUP BY在Oracle 11g中

expenses (
    purchase_date date, 
    item_purchased varchar2(15), 
    amount number 
) 

我想 '按组' 上purchased_date执行(日期列)。 说,我必须这样做:

SELECT purchase_date, count(*) 
FROM expenses 
GROUP BY purchase_date; 

它给我结果为:

purchase_date count 
------------- ------- 
19-Jul-12   1 
20-Jul-12   1 

虽然我有属于同日

我使用Oracle 11g多个条目。我的一个朋友使用Oracle 10g,并且在她的版本中,查询按预期工作。那么11g中的问题是什么?

请帮助我的朋友。

TIA。 :)

回答

2

DATE列还包含当天的时间。不幸的是,SQL * Plus(您似乎正在使用)不会在默认配置中显示时间。

聚集在摆脱时使用TRUNC()函数:

SELECT trunc(purchase_date), count(*) 
FROM expenses 
GROUP BY trunc(purchase_date); 

如果不能改变结果,那么它很可能你的数据是不是你认为它是。您应该发布自包含的测试用例(包括INSERT语句来创建测试数据)。你可以在http://sqlfiddle.com