我在PostgreSQL中编写查询时遇到了麻烦。
我有一个包含IDs
和subID
的视图。
例如:
ID quantity partID
100 50 10
100 20 10
100 30 11
101 50 13
101 70 13
102 20 17
我希望获得具有相同ID
但不同partIDs
的所有行。
对于给定的例子,我想得到:
ID quantity partID
100 50 10
100 20 10
100 30 11
我尝试了这个查询查询:
select id ,quantity ,partid
from A
group by id,quantity,partid
having count(id)>2
order by id
但它不起作用。如果ID
出现在2行以上,则会进行准确检查......在给定的示例中,它也需要ID 101
。我也不知道如何让它只选择partid
,ID
每个 if(tempStr.equals("Sou")){
}
不同。
答案 0 :(得分:2)
每个count
群组中distinct
partid
id
只能{/ 1>}:
select *
from A t
where exists (
select 1
from A
where id = t.id
having count(distinct partid) > 1)
答案 1 :(得分:2)
你不需要数数;您只需要检查是否存在具有不同partid的行:
SELECT *
FROM atable t
WHERE EXISTS (
SELECT *
FROM atable x
WHERE x.id = t.id
AND x.partid <> t.partid
);