LEFT JOIN from Members to Visits on member_id to include all members, even those without visits.LEFT JOIN from Visits to Purchases on visit_id to include all visits, even those without purchases.GROUP BY to group the results by member_id and name.COUNT() to count the number of visits and purchases for each member.(100 * COUNT(purchases)) / COUNT(visits).CASE statement to assign categories based on the conversion rate.member_id, name, and the calculated category for the final output.erDiagram
Members ||--o{ Visits : has
Visits ||--o{ Purchases : has
Members {
int member_id PK
varchar name
}
Visits {
int visit_id PK
int member_id FK
date visit_date
}
Purchases {
int visit_id PK
int charged_amount
}