I am having an SQL problem.

Example Data;
name shop price description
XXXX 247elec 1000 a
XXXX argos 1200 aa
XXXX comet 1300 aaa
XXXX doitall 1400 aaaa

Basicly i want to creata a view that will give me

name shop price description
XXXX 247elec 1000 aaaa

This is
Group by name
Min of price
MAX length description
corresponding shop to min price

In reality i want to be able to GROUP BY name (coming from a join) select the MIN(price) all the corresponding columns to the MIN(price) AND The longest Description from a feed

Any help will be very much appreciated as it has had me stumped now for about a day.