如何在PostgreSQL中添加默认值到分组依据和计数?



是否有设置"默认";值设置为groupBy

例如,我有从枚举(宝马,保时捷,奥迪itd.(插入值的列汽车

我想分组并数一下这辆车:

select brand, count(*)
from cars
group by brand

如果数据库中有所有这些枚举的值,那么它的ok结果如下:

BMW | 3
Audi | 4
Jaguar | 5

但如果我在数据库中只有宝马的汽车,结果只有宝马:

BMW | 3

我有一个问题-如何添加默认字段以获得响应,如:

BMW | 3
Audi | 0
Mercedes | 0

您需要以某种方式列出这些值。一种方法使用values子句:

select brand, count(c.brand)
from (values ('BMW'), ('Audi'), ('Jaguar')) v(brand) left join
cars c
using (brand)
group by brand;

在实践中,你应该在自己的表格中列出品牌,这样你就可以使用:

select brand, count(c.brand)
from brands b
cars c
using (brand)
group by brand;

最新更新