DZKY001车型应该是1个。用distinct。
select v.id as '线路id',v.line_name as '线路名称',
COUNT(distinct(vc.`NAME`)) as '车型',
COUNT(distinct(sr.position)) as '站点数',
SUM(ticket_price) as '总票价'
from village_communication v left join village_communication_model vc
on v.id = vc.village_communication_id
left JOIN stop_route sr
on v.id = sr.village_communication_id