Есть такая вот не хитрая
табличкаНужно найти по каждому полю a,b,с
их максимальное и минимальное значение, желательно за один запрос пробую так
SELECT * , id =0 AS min, MAX( `val` ) AS max
FROM `test`
GROUP BY `text`
UNION ALL
SELECT * , MIN( `val` ) AS min, id =0 AS max
FROM `test`
GROUP BY `text`
ORDER BY `text` ASC , `val` ASC
получаю следующий
результатт.е вроде как минимальное и максимальное значение находиться но почему то ни поле id ни поле text не соответствуют той строке где реально находиться минимальное или максимальное значение, а просто берется первое из данной группы, а уже пробывал и группировать по max или min , пишет ошибку и так пробывал
SELECT * , id =0 AS min, MAX( `val` ) AS max
FROM `test`
GROUP BY `text` HAVING `val` = MAX( `val` )
UNION ALL
SELECT * , MIN( `val` ) AS min, id =0 AS max
FROM `test`
GROUP BY `text` HAVING `val` = MIN( `val` )
ORDER BY `text` ASC , `val` ASC
Получаю Т.е только то поле которое встречается 1 раз
Помогите разобраться, что я делаю не так.