Предполагая MySQL 8.0, вы можете использовать оконные функции:
select
t.*,
(rank() over(order by CostToRestaff desc) = 1) isGreatest
from mytable t
Это дает вам флаг 0/1
, который указывает, имеет ли ток наибольшее значение CostToRestaff
во всей таблице - что я считаю более значимым, что строка '(Not) Greatest'
. Если есть верхние связи, они все получат флаг 1
.
Если вы хотите использовать это в качестве строкового значения:
select
t.*,
case when rank() over(order by CostToRestaff desc) = 1
then 'Greatest'
else 'Not Greatest'
end isGreatest
from mytable t
В более ранних версиях вы можете использовать подзапрос или объединение для вычисления максимального значения:
select
t.*,
(select max(CostToRestaff) from mytable) = CostToRestaff isGreatest
from mytable t