-- Database schema
| all_prevalences : ITEM [ TEXT ] primary_key , POPULATION TYPE [ TEXT ] , OCCURRENCES [ INTEGER ] , POPULATION COUNT [ INTEGER ] , PREVALENCE RATE [ REAL ] , PREVALENCE PERCENTAGE [ REAL ] | patients : patient [ TEXT ] primary_key , birthdate [ DATE ] , deathdate [ DATE ] , ssn [ TEXT ] , drivers [ TEXT ] , passport [ TEXT ] , prefix [ TEXT ] , first [ TEXT ] , last [ TEXT ] , suffix [ TEXT ] , maiden [ TEXT ] , marital [ TEXT ] , race [ TEXT ] , ethnicity [ TEXT ] , gender [ TEXT ] , birthplace [ TEXT ] , address [ TEXT ] | encounters : ID [ TEXT ] primary_key , DATE [ DATE ] , PATIENT [ TEXT ] encounters.PATIENT = patients.patient , CODE [ INTEGER ] , DESCRIPTION [ TEXT ] , REASONCODE [ INTEGER ] , REASONDESCRIPTION [ TEXT ] | allergies : START [ TEXT ] , STOP [ TEXT ] , PATIENT [ TEXT ] allergies.PATIENT = patients.patient , ENCOUNTER [ TEXT ] allergies.ENCOUNTER = encounters.ID , CODE [ INTEGER ] , DESCRIPTION [ TEXT ] | careplans : ID [ TEXT ] , START [ DATE ] , STOP [ DATE ] , PATIENT [ TEXT ] careplans.PATIENT = patients.patient , ENCOUNTER [ TEXT ] careplans.ENCOUNTER = encounters.ID , CODE [ REAL ] , DESCRIPTION [ TEXT ] , REASONCODE [ INTEGER ] , REASONDESCRIPTION [ TEXT ] | conditions : START [ DATE ] , STOP [ DATE ] , PATIENT [ TEXT ] conditions.PATIENT = patients.patient , ENCOUNTER [ TEXT ] conditions.ENCOUNTER = encounters.ID , CODE [ INTEGER ] , DESCRIPTION [ TEXT ] conditions.DESCRIPTION = all_prevalences.ITEM | immunizations : DATE [ DATE ] , PATIENT [ TEXT ] immunizations.PATIENT = patients.patient , ENCOUNTER [ TEXT ] immunizations.ENCOUNTER = encounters.ID , CODE [ INTEGER ] , DESCRIPTION [ TEXT ] | medications : START [ DATE ] , STOP [ DATE ] , PATIENT [ TEXT ] medications.PATIENT = patients.patient , ENCOUNTER [ TEXT ] medications.ENCOUNTER = encounters.ID , CODE [ INTEGER ] , DESCRIPTION [ TEXT ] , REASONCODE [ INTEGER ] , REASONDESCRIPTION [ TEXT ] | observations : DATE [ DATE ] , PATIENT [ TEXT ] observations.PATIENT = patients.patient , ENCOUNTER [ TEXT ] observations.ENCOUNTER = encounters.ID , CODE [ TEXT ] , DESCRIPTION [ TEXT ] , VALUE [ REAL ] , UNITS [ TEXT ] | procedures : DATE [ DATE ] , PATIENT [ TEXT ] procedures.PATIENT = patients.patient , ENCOUNTER [ TEXT ] procedures.ENCOUNTER = encounters.ID , CODE [ INTEGER ] , DESCRIPTION [ TEXT ] , REASONCODE [ INTEGER ] , REASONDESCRIPTION [ TEXT ] | claims : ID [ TEXT ] primary_key , PATIENT [ TEXT ] , BILLABLEPERIOD [ DATE ] , ORGANIZATION [ TEXT ] , ENCOUNTER [ TEXT ] , DIAGNOSIS [ TEXT ] , TOTAL [ INTEGER ] |
-- -- How many types of medication have been prescribed to Mr. Major D'Amore since his visit to the hospital?

SELECT COUNT(DISTINCT T2.DESCRIPTION) FROM patients AS T1 INNER JOIN medications AS T2 ON T1.patient = T2.PATIENT WHERE T1.first = 'Major' AND T1.last = 'D''Amore';