Try this
declare @TBL TABLE
(
GROUPID INT,
GENERALID VARCHAR(10),
[VALUES] DECIMAL(10, 2)
);
INSERT INTO @TBL(GROUPID, GENERALID, [VALUES])
SELECT 3,'11111',1.1
UNION ALL SELECT 3,'22222',2.2
UNION ALL SELECT 3,'33333',3.3
UNION ALL SELECT 3,'44444', 4.4
UNION ALL SELECT 2,'55555', 5.5
UNION ALL SELECT 2,'66666', 6.6
UNION ALL SELECT 2,'77777', 1.1
UNION ALL SELECT 2,'88888', 2.3
UNION ALL SELECT 1,'11111',3.4
UNION ALL SELECT 1,'99999',4.3
UNION ALL SELECT 1,'22222',3.2
UNION ALL SELECT 1,'33333',2.2;
SELECT T.*
FROM
(
SELECT GENERALID, MAX(GROUPID) GROUP_ID
FROM @TBL
GROUP BY GENERALID
) A INNER JOIN @TBL T ON A.GENERALID = T.GENERALID AND A.GROUP_ID = T.GROUPID
Order by 1 desc, 2