Eu acho que é isso que você está tentando alcançar:
SELECT t.* FROM test t
JOIN
( SELECT Name, MIN(Value) minVal
FROM test GROUP BY Name
) t2
ON t.Value = t2.minVal AND t.Name = t2.Name;
Saída:
| ID | VALOR | NOME |
|---|---|---|
| 1 | 10 | linha1 |
| 4 | 5 | linha2 |
Veja este SQLFiddle
- Demonstração com mais valores
- Demonstração com valores duplicados
- Demonstração com remoção de valores duplicados (usando
DISTINCT)
Aqui eu me juntei à tabela com minVal e Name.