PostgreSQL - 计数函数

时间:2017-03-25 01:03:30

标签: postgresql

我有两张叫做Manu和Cars的桌子

Manufacturer      |      Employees      |      id
Toyota            |       102346        |       1
Subaru            |       284608        |       2
Kia               |       268244        |       3
Suzuki            |       228624        |       4

第二张表汽车

Car      |      id
Corolla  |      1
camry    |      1
alto     |      4 
vitara   |      4
forester |      2
impreza  |      2
 xv      |      2
 cerato  |      3
 celica  |      1   

现在汽车表通过Id

引用回Manu表

我试图让那些已生产2种或更多型号汽车的制造商回归。

到目前为止,我所尝试的是

Select m.id, m.manufacturer 
from Manu m
inner join Cars n on m.id = n.id
group by m.id having count(n.id) >= 2;

它告诉我列m.id必须出现在group by子句中或者在聚合函数中使用。非常困惑。

由于

2 个答案:

答案 0 :(得分:0)

首先,我们将获得制造商提供的汽车数量:

c

接下来,我们将使用该数据来获得制作两个以上模型的制造商:

SELECT id,COUNT(id) FROM cars GROUP BY id;

答案 1 :(得分:0)

实际上你已经给出了答案。只是你没有被m.manufactorer分组;

Select m.id, m.manufactorer
from Manu  m
inner join Cars n using(id)
group by m.id,m.manufactorer 
having count(*) >= 2;