带有DISTINCT语句的SQL SUM聚合

时间:2015-02-24 07:15:44

标签: sql postgresql

表1:书虫数据库的模式。主键带下划线。有一些外键引用将表连接在一起;你可以利用天然连接来利用它们。

Author(aid, alastname, afirstname, acountry, aborn, adied).
Book(bid, btitle, pid, bdate, bpages, bprice).
City(cid, cname, cstate, ccountry).
Publisher(pid, pname).
Author_Book(aid, bid).
Publisher_City(pid, cid).

这个问题让我有些困惑,非常感谢任何帮助。

查找每个国家/地区的作者数量。

到目前为止,我已经尝试了

SELECT 
     SUM(DISTINCT acountry) AS total,
     COUNT(DISTINCT acountry)AS N 
FROM Author;

并收到:

  

错误:函数和(字符变化)不存在       第1行:选择总和(不同的国家)作为总数,计数(不同的共同点......

提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。

2 个答案:

答案 0 :(得分:1)

你不能sum字符串。由于acountry包含字符串值(假设国家/地区名称)。要获得the number of authors of each country.要获得国家明智的作者计数,您需要使用GroupBy国家/地区名称并计算该群组中您可以尝试的行,

 SELECT COUNT(*) AS totalAuthor,
        acountry AS Country
 FROM Author
 GROUP BY acountry 

答案 1 :(得分:0)

您需要按国家/地区分组,并计算每个组的记录数

SELECT acountry, COUNT(1) as NumberOfAuthors FROM Author GROUP BY acountry