В MySQL 8.0 вы можете использовать оконные функции:
select
t.*,
concat(total, ' - ', lag(total) over(partition by country, date order by hour)) info
from mytable
Если вы хотите исключить первую строку в группе, вы можете использовать подзапрос:
select *
from (
select
t.*,
concat(total, ' - ', lag(total) over(partition by country, date order by hour)) info
from mytable
) t
where info is not null
В более ранних версиях вы могли самостоятельно присоединиться к таблице:
select t.*, concat(t.total, ' - ', tlag.total) info
from mytable t
inner join mytable tlag
on tlag.country = t.country and tlag.date = t.date and tlag.hour = t.hour - 1