Трябва да използвате АГРЕГАТНА ФУНКЦИЯ :
Агрегатните функции изчисляват единичен резултат от набор от входни стойности.
SELECT col2, MIN(col3) AS col3, MIN(col1) AS col1
FROM the_table
GROUP BY col2;
Обработка на MySQL на GROUP BY :
В стандартния SQL заявка, която включва клауза GROUP BY, не може да се отнася до неагрегирани колони в списъка за избор, които не са наименувани в клаузата GROUP BY
и:
MySQL разширява използването на GROUP BY, така че списъкът за избор може да се отнася до неагрегирани колони, които не са наименувани в клаузата GROUP BY. Това означава, че предходната заявка е законна в MySQL. Можете да използвате тази функция, за да постигнете по-добра производителност, като избягвате ненужното сортиране и групиране на колони. Това обаче е полезно преди всичко, когато всички стойности във всяка неагрегирана колона, която не е именувана в GROUP BY, са еднакви за всяка група. Сървърът е свободен да избира всяка стойност от всяка група, така че освен ако не са еднакви, избраните стойности са неопределени
Така че с версията на MySQL без изрична агрегатна функция може да се окажете с недетерминирани стойности. Силно препоръчвам да използвате специфична агрегатна функция.
РЕДАКТИРАНЕ:
От Обработка на MySQL на GROUP BY :
SQL92 и по-стари не позволяват заявки, за които списъкът за избор, условието HAVING или списъкът ORDER BY се отнасят до неагрегирани колони, които не са наименувани в клаузата GROUP BY.
SQL99 и по-нови позволяват такива неагрегирани елементи за опция T301 ако те са функционално зависими от колони GROUP BY: Ако съществува такава връзка между име и попечител, заявката е законна. Такъв би бил случаят, например, ако се пазят първичен ключ на клиентите.
Пример:
SELECT o.custid, c.name, MAX(o.payment)
FROM orders AS o
JOIN customers AS c
ON o.custid = c.custid
GROUP BY o.custid;