POSTGRESQL - 计算另一个表中与另一个值相关的值的出现次数,即使= 0

时间:2015-03-12 04:27:38

标签: sql postgresql

快速免责声明,这是指派。

问题本身是:

  

列出由多个客户持有的每个信用额度,以及拥有此信息的Johnny Smith的客户数量   限制

我的架构中有5个表,相关的表(不完整,只是相关信息):

TableCUSTOMER C

C.CREDIT_LIMIT

C.REP_NUM REFERENCES REP

(即表名为Customer,列为credit_limit和rep_num,这是“rep”表的外键。)

表REP R

R.REP_NUM

R.NAME (即表名是REP,代表有一个数字和一个名字)。

有问题的代表是20岁。

我目前的尝试是:

SELECT COUNT(C.REP_NUM), C.CREDIT_LIMIT
FROM CUSTOMER C
WHERE C.REP_NUM = '20'
GROUP BY  C.CREDIT_LIMIT
HAVING COUNT(C.CREDIT_LIMIT) >= 2;

这几乎正常。唯一的问题是,有两个重复的信用额度,一个是代表中有客户,另一个不是。他有客户的那个人正在出现,而另一个则没有。

总结一下,而不是得到:

Occurences - Credit_Limit
3          - 7500
0          - 10,000

我正在

Occurences - Credit Limit 
3          - 7500

我如何让其他元组出现?

1 个答案:

答案 0 :(得分:1)

使用左外连接,例如:

select 
* 
from a
left outer join b on a.id=b.id

所以如果b中有两行和一行,那么b部分会有两行左半部分为空...