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.