No se si logre entender tu pedido, pero te dejo un demo en MS Sql Server.
Código SQL
[-]
CREATE TABLE #Tablax (
id int identity,
fecha datetime,
hora int,
grupo int,
codigo int,
cantidad int
)
insert #Tablax(fecha, hora, grupo, codigo, cantidad) values('20181001', 2000, 1, 1000, 0)
insert #Tablax(fecha, hora, grupo, codigo, cantidad) values('20181001', 2000, 1, 1125, 5)
insert #Tablax(fecha, hora, grupo, codigo, cantidad) values('20181001', 2000, 1, 1999, 2)
insert #Tablax(fecha, hora, grupo, codigo, cantidad) values('20181001', 1530, 2, 2350, 2)
insert #Tablax(fecha, hora, grupo, codigo, cantidad) values('20181001', 1530, 2, 2390, 3)
insert #Tablax(fecha, hora, grupo, codigo, cantidad) values('20181001', 1530, 2, 2300, 0)
insert #Tablax(fecha, hora, grupo, codigo, cantidad) values('20181005', 1230, 8, 5000, 0)
insert #Tablax(fecha, hora, grupo, codigo, cantidad) values('20181005', 1230, 8, 1234, 2)
insert #Tablax(fecha, hora, grupo, codigo, cantidad) values('20181005', 1230, 8, 7890, 4)
Select rt.*, tmaster.codigo cod_master
From #Tablax rt
inner join (
Select tt.Fecha, tt.hora, tt.grupo, tt.codigo
from #Tablax tt
inner join (Select t.fecha, t.hora, t.grupo, min(t.cantidad) ctmin
from #Tablax t
group by t.fecha, t.hora, t.grupo) tm on tm.fecha = tt.fecha and
tm.hora = tt.hora and
tm.grupo = tt.grupo and
tm.ctmin = tt.cantidad
) tmaster on tmaster.fecha = rt.fecha
and tmaster.hora = rt.hora
and tmaster.grupo = rt.grupo
Order by rt.id
Drop table #Tablax
Hay una aproximacion a tu tabla (la tabla temporal creada).
creo que si no es necesario agrupar por hora se puede quitar del grupo.
Saludos