2013-05-14 51 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