Among the establishments with a postal code of 94102, how many establishments have a score of 90 or more in 2015?
establishment has the same meaning as business; score of 90 or more refers to score ≥ 90; year(date) = 2015;
SELECT COUNT(DISTINCT T2.business_id) FROM violations AS T1 INNER JOIN businesses AS T2 ON T1.business_id = T2.business_id INNER JOIN inspections AS T3 ON T2.business_id = T3.business_id WHERE STRFTIME('%Y', T1.`date`) = '2015' AND T2.postal_code = '94102' AND T3.score > 90
database name:db_id food_inspection
businesses table businesses Cols: business id dtype integer, name dtype text, address dtype text, city dtype text, postal code dtype text, latitude dtype real, longitude dtype real, phone number dtype integer, tax code dtype text, business certificate dtype integer, application date dtype date, owner name dtype text, owner address dtype text, owner city dtype text, owner state dtype text, owner zip dtype text, 
inspections table inspections Cols: business id dtype integer, score dtype integer, date dtype date, type dtype text, 
violations table violations Cols: business id dtype integer, date dtype date, violation type id dtype text, risk category dtype text, description dtype text, 
