我试过用 select FItemID, FInterID, FPrice from POOrderEntry where FItemID in (select MAX(FItemID) from POOrderEntry group by FPrice)但是显示出来 一个fitemid 对应的还是多个fprice 谁可以给个思路或者给相关文章解惑一下!
逻辑:1、根据主键,或相同的数据分组,2、取其一select * from ( select FItemID,FInterID,FPrice, row_number() over(partition by FItemID,FInterID order by FItemID) as SN ) as t where t.SN=1
--如果只有这三列,直接这样即可 SELECT FItemID,MIN(FInterID)FInterID,FPrice FROM TB GROUP BY FItemID,FPrice--如果有其它列,表连接也挺快 SELECT T1.* FROM TB T1 LEFT JOIN TB T2 ON T1.FItemID=T2.FItemID AND T1.FPrice=T2.FPrice AND T1.FInterID<T2.FInterID WHERE T2.FItemID IS NULL
select
FItemID,
FInterID,
FPrice
from POOrderEntry
where FItemID in (select MAX(FItemID) from POOrderEntry group by FPrice)但是显示出来 一个fitemid 对应的还是多个fprice 谁可以给个思路或者给相关文章解惑一下!
from (
select FItemID,FInterID,FPrice,
row_number() over(partition by FItemID,FInterID order by FItemID) as SN
) as t
where t.SN=1
SELECT FItemID,MIN(FInterID)FInterID,FPrice
FROM TB
GROUP BY FItemID,FPrice--如果有其它列,表连接也挺快
SELECT T1.* FROM TB T1
LEFT JOIN TB T2 ON T1.FItemID=T2.FItemID
AND T1.FPrice=T2.FPrice AND T1.FInterID<T2.FInterID
WHERE T2.FItemID IS NULL