我正在尝试按orderid和lineid分组,并仅从包含单独字符串列表中的任何值的组中返回唯一的orderid和lineid。
下面是一些示例数据。
OrderID lineID positionID fieldOfInterest somefield1 somefield2 ....
1A2 10248 1 '10xa' - -
1A2 10248 2 '42-vf' - -
1A2 10248 3 '10xb' - -
1A2 10249 2 '10xa' - -
1C3 11200 5 '10002' - -
1C3 10250 1 'N52O' - -
1V8 10250 7 'fas01' - -
1V8 10250 8 '10002' - -
. . . . . .
. . . . . .
. . . . . .
separate list to search groups against: ('10xa','10002')
我想要的结果是
OrderID lineID
1A2 10248 <------ group contained '10xa'
1A2 10249 <------ group contained '10xa'
1C3 11200 <------ group contained '10002'
1V8 10250 <------ group contained '10002'
我试过了
having (min(fieldOfInterest) in ('10xa','10002')) or (max(fieldOfInterest) in ('10xa','10002'))
但我不认为这会一直奏效。也许我可以在字符串列表和表中进行某种连接。
1条答案
按热度按时间9wbgstp71#
在postgres中,我推荐聚合和
bool_or()
: