That is a nice little query. Here's my quick re-write to show all databases and track percent growth since the first backup on record.
SELECT
'database_name' = mdbus.database_name
,'backup_start' = mdbus.backup_start_date
,'duration' = CASE
WHEN (datediff([second], mdbus.backup_start_date, mdbus.backup_finish_date) / 60 / 60) >= 100 THEN '100+ hours'
ELSE isnull(
right('0' + cast( (datediff([millisecond], mdbus.backup_start_date, mdbus.backup_finish_date) / 1000 / 60 / 60) AS varchar(10)), 2)
+ ':' + right('0' + cast(((datediff([millisecond], mdbus.backup_start_date, mdbus.backup_finish_date) / 1000 / 60) % 60) AS varchar(10)), 2)
+ ':' + right('0' + cast(((datediff([millisecond], mdbus.backup_start_date, mdbus.backup_finish_date) / 1000) % 60) AS varchar(10)), 2)
+ '.' + right('00' + cast( (datediff([millisecond], mdbus.backup_start_date, mdbus.backup_finish_date) % 1000) AS varchar(10)), 3)
, '')
END
,'size_gb' = convert(decimal(10,2), (convert(float, mdbus.backup_size) / 1024 / 1024 / 1024))
,'percent_growth' = convert(decimal(10,2), (((convert(float, mdbus.backup_size) - mdbus_first.backup_size) / mdbus_first.backup_size) * 100))
FROM
msdb.dbo.backupset mdbus
INNER JOIN
(
SELECT
database_name
,'backup_set_id' = min(backup_set_id)
FROM
msdb.dbo.backupset
GROUP BY
database_name
) mdbus_first_rec ON (mdbus.database_name = mdbus_first_rec.database_name)
INNER JOIN
(
SELECT
database_name
,backup_set_id
,backup_start_date
,backup_size
FROM
msdb.dbo.backupset
) mdbus_first ON (mdbus.database_name = mdbus_first.database_name AND mdbus_first_rec.backup_set_id = mdbus_first.backup_set_id)
WHERE
mdbus.[type] = 'd'
ORDER BY
mdbus.database_name
,mdbus.backup_start_date DESC