CREATE TABLE [dbo].[tmp_tbl](
[IX] [int] NOT NULL,
[ID_Product] [int] NOT NULL,
[Mark] [int] NOT NULL
) ON [PRIMARY]
INSERT INTO [DB_PowerReg].[dbo].[tmp_tbl] ([IX],[ID_Product],[Mark]) VALUES(1,1,1)
INSERT INTO [DB_PowerReg].[dbo].[tmp_tbl] ([IX],[ID_Product],[Mark]) VALUES(2,1,100)
INSERT INTO [DB_PowerReg].[dbo].[tmp_tbl] ([IX],[ID_Product],[Mark]) VALUES(3,1,200)
INSERT INTO [DB_PowerReg].[dbo].[tmp_tbl] ([IX],[ID_Product],[Mark]) VALUES(4,1,300)
INSERT INTO [DB_PowerReg].[dbo].[tmp_tbl] ([IX],[ID_Product],[Mark]) VALUES(1,2,1)
INSERT INTO [DB_PowerReg].[dbo].[tmp_tbl] ([IX],[ID_Product],[Mark]) VALUES(2,2,100)
INSERT INTO [DB_PowerReg].[dbo].[tmp_tbl] ([IX],[ID_Product],[Mark]) VALUES(3,2,200)
INSERT INTO [DB_PowerReg].[dbo].[tmp_tbl] ([IX],[ID_Product],[Mark]) VALUES(1,3,8)
INSERT INTO [DB_PowerReg].[dbo].[tmp_tbl] ([IX],[ID_Product],[Mark]) VALUES(2,3,700)
INSERT INTO [DB_PowerReg].[dbo].[tmp_tbl] ([IX],[ID_Product],[Mark]) VALUES(3,3,600)
INSERT INTO [DB_PowerReg].[dbo].[tmp_tbl] ([IX],[ID_Product],[Mark]) VALUES(4,3,255)
Нужно для ID_Product выбрать такой Mark для которого IX максимален.
То есть в результате запроса для ID_Product=1 нужно получить 300, для ID_Product=2 - 200, для ID_Product=3 - 255.
Как бы это пооптимальнее?