我有一个有3列的表。 Plate_Id PROD_ID LOCATION_ID
表格看起来像这样,
期望的结果应该是突出显示的行。
基本上,我需要plate_id,其中的位置是最小的组。 我不关心Prod_Id之后。
答案 0 :(得分:0)
对于某些特定于DBMS的您可以使用LIMIT
或TOP
子句
select *
from table t
where Prod_Id = (select top(1) Prod_Id
from table
where plateid = t.plateid
group by Prod_Id
order by count(1) ASC
);
LIMTI
条款
select *
from table t
where Prod_Id = (select Prod_Id
from table
where plateid = t.plateid
group by Prod_Id
order by count(1) ASC
LIMIT 1
);
答案 1 :(得分:0)
警告:这不是一个有效的解决方案!!! 只要保持在这里,以免有人犯同样的错误。
此解决方案不会超过2个prod_id方案。
谢谢你们! 我想到了以下内容,它对我有用。 如果您认为可能存在我可能忽视的漏洞,请发表评论。
SELECT DISTINCT pp1.plate_id, pp1.location
FROM MyPlate pp1
inner join MyPlate pp2 on pp1.plate_id = pp2.plate_id and pp1.location = pp2.location
WHERE pp1.prod_id <> pp2.prod_id
ORDER BY pp1.plate_id
&#13;
但是,这些是你有一些有趣的解决方案,它将来会很方便!再次感谢!