2013-05-14 52 views
1

我遇到了從我的表中獲取正確數據的問題。 我有一張桌子,上面有發送信件的客戶信息。Distinct遇到問題(Coloumn_name)

我的表有以下coloumbs(姓名,郵編,國家,PHONE_NUMBER,字母(該字母數))

我想要得到的字母數字,從每一個客戶發送,取決於POSTAL_CODE。

Select Distinct(Postal_Code), Count(*) 
from Table_name  
Group by Postal_Code, Letters 

這樣的結果,不正是我想要的,因爲我得到的郵遞區號的副本,以及字母的數字是錯誤的。 我對這個東西很新,所以我希望有人能幫助我。

編輯:

目前,我試圖讓記錄的日期,我的代碼,我現在S形這一點。

Select Postal_Code, Sum(Letters), To_Char(trunc(Start_time),'DD-MM-YYYY') AS StartTime 
    from Table_name  
    Group by Postal_Code 

但是運行時出現錯誤。錯誤說:ORA-00937:不是單組功能。 我有googlet的問題,並嘗試與我的start_time在組中,但這給了我錯誤的結果。

+0

你可以給你想要的結果樣品記錄? – 2013-05-14 06:45:06

+0

您需要在start_time列上應用聚合函數,例如:'max(start_time)' – 2013-05-14 10:47:20

回答

1

如果使用GROUP BY,則不需要DISTINCT。由於字母是一個數字,你需要SUM()它們。因此,對於每個郵政編碼總字母是沿着線的東西:

Select Postal_Code, SUM(letters) 
from Table_name  
Group by Postal_Code 
+0

我編輯了我的問題。也許你可以幫忙嗎? :) – 2013-05-14 10:08:27

0

GROUP BY爲您提供所有列在從句中不同的值。所以通過POSTAL_CODE進行分組,LETTERS就是爲什麼你會得到重複的POSTAL_CODE值。

不知道我完全理解你想要做什麼,但這裏是我的解釋:

Select Postal_Code 
     , sum(letters) no_of_letters 
     , Count(*) no_of_customers 
from Table_name  
Group by Postal_Code