Модель данных не адекватно отражает ваши требования к отчетности, так как данные столбца должны быть проверены, чтобы классифицировать их, но что-то вроде: (экстраполируя возможные отношения из вашего описания)
SELECT CASE (vt.description ~ 'car$')
WHEN TRUE THEN 'car'
ELSE 'van'
END AS vehicle_group,
vt.description AS vehicle_sub_group,
COUNT (*) -- or whatever aggregates you might need
FROM vehicle v
INNER JOIN vehicle_type vt ON vt.vehicle_type = v.vehicle_type
GROUP BY 1,2;
Может привести васчто вам нужно в указанном случае, однако это хрупкий способ работы с данными, и он не справится с дополнительными сложностями, например, если вам нужно разделить автомобиль на седан, спортивный автомобиль, 4WD или фургон на борт, 7,5 тонны,15 тонн и т. Д.