2012-07-19 84 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