CREATE TABLE tablename([col1] varchar(10), [col2] decimal(6,3), [col3] decimal(6,3))
INSERT INTO tablename
SELECT 'abc', 2.0, 0.222
UNION ALL SELECT 'abc', 1.0, 0.236
UNION ALL SELECT 'abc', 0.3, 1.236
UNION ALL SELECT 'aaa', 3.0, 0.363
UNION ALL SELECT 'aaa', 2.3, 0.963
SELECT * FROM TABLENAME T WHERE NOT EXISTS(SELECT 1 FROM TABLENAME WHERE COL1 = T.COL1 AND COL3 > T.COL3)
SELECT COL1, MAX(COL2) AS COL2, COL3 FROM
(SELECT * FROM TABLENAME T WHERE NOT EXISTS(SELECT 1 FROM TABLENAME WHERE COL1 = T.COL1 AND COL3 > T.COL3))TT
GROUP BY COL1, COL3
CREATE TABLE tablename(one varchar(10), two decimal(6,3), three decimal(6,3))
INSERT INTO tablename
SELECT 'abc', 2.0, 0.222
UNION ALL SELECT 'abc', 2.0, 0.222
UNION ALL SELECT 'abc', 1.0, 1.236
UNION ALL SELECT 'abc', 0.3, 1.236
UNION ALL SELECT 'aaa', 3.0, 0.363
UNION ALL SELECT 'aaa', 2.3, 0.963
select * from
(select * from tablename a where (select count(*) from tablename b where b.one=a.one and b.three>a.three)=0 ) aa
where (select count(*)+1 from tablename bb where bb.one=aa.one and bb.two>aa.two and bb.three=aa.three)=1
--abc 1.0 1.236
--aaa 2.3 0.963
DROP TABLE tablename
--------------------------
one two three
abc 1.000 1.236
aaa 2.300 .963