Для Mysql это выглядело бы так:
SELECT brand,
IF(color = 'Blue',1,0)+IF(type = '4-door', 1,0)+IF(engine = 'V8',1,0)
AS num_matches
FROM table WHERE color = 'Blue' or type = '4-door' or engine = 'V8'
Перепроверьте синтаксис IF для PostgreSQL.
Вы также можете использовать CASE.