Topfolio
Career TracksMicro Free CoursesTask CoursesPracticeInterview PracticeWork ExperienceProjects
Career TrackBlog
Support
Dashboard
Career TracksMicro Free CoursesTask Courses
SQL & Python
Interview Prep
Work ExperienceProjectsResume Feedback
CertificatesMy OrdersRefer & Earn
Join Community

Navigation

Dashboard
Learn
Career TracksMicro Free CoursesTask Courses
Practice
SQL & PythonInterview Prep
Career
Work ExperienceProjectsResume Feedback
My Stuff
CertificatesMy OrdersRefer & Earn
Join Community
Topfolio

Learn data analytics online. Real skills, real projects, real community.

courses

  • Career Tracks
  • Work Experience
  • Best Data Analyst Course in India
  • SQL Fundamentals
  • SQL Advanced
  • Python for Data
  • Micro Free Courses

practice

  • SQL Fundamentals Interview Test
  • SQL Advanced Coding Test
  • All Practice Tests

resources

  • How to Become a Data Analyst
  • SQL Interview Questions
  • Data Analyst Salary Guide
  • Free Datasets for Practice
  • SQL vs NoSQL Guide
  • Data Analyst vs Data Engineer vs Data Scientist

employers

  • Enterprise Screening
  • AI Proctoring Demo
  • Volume Pricing
  • Employer Portal

company

  • About
  • Terms
© 2026 Topfolio. All rights reserved.Made with ❤️ for aspiring analysts
Topfolio
Career TracksMicro Free CoursesTask CoursesPracticeInterview PracticeWork ExperienceProjects
Career TrackBlog
Support
Dashboard
Career TracksMicro Free CoursesTask Courses
SQL & Python
Interview Prep
Work ExperienceProjectsResume Feedback
CertificatesMy OrdersRefer & Earn
Join Community

Navigation

Dashboard
Learn
Career TracksMicro Free CoursesTask Courses
Practice
SQL & PythonInterview Prep
Career
Work ExperienceProjectsResume Feedback
My Stuff
CertificatesMy OrdersRefer & Earn
Join Community

RFM Customer Segmentation

advanced~18 min45 pts
📊 View Insights

Problem

Classic RFM segmentation: score every customer on Recency (R), Frequency (F), and Monetary (M), then assign a segment label.

Schema: Customer

ColumnType
CustomerIdINTEGER (PK)
FirstNameTEXT NOT NULL
LastNameTEXT NOT NULL
CompanyTEXT
CountryTEXT
EmailTEXT NOT NULL
SupportRepIdINTEGER (FK → Employee)

Schema: Invoice

ColumnType
InvoiceIdINTEGER (PK)
CustomerIdINTEGER (FK)
InvoiceDateTIMESTAMP NOT NULL
BillingCountryTEXT
TotalNUMERIC(10,2) NOT NULL

Requirements:

  • Reference date for recency: '2014-01-01'::date
  • Per customer: Recency_Days (smaller is better), Frequency (invoice count), Monetary (total spend)
  • Use NTILE(4) for each metric so the best quartile is 4 (smallest recency, highest frequency, highest monetary)
  • RFM_Score = concatenation of three digits as a string (e.g., '4-4-4')
  • Segment: 'Champion' if R=4 AND F=4 AND M=4; 'Loyal' if F=4 AND M>=3; 'At Risk' if R=1 AND M>=3; else 'Other'
  • Return FullName, Recency_Days, Frequency, Monetary, RFM_Score, Segment
  • Sort by Monetary descending
  • Limit to 25 rows
CTENTILEWindow FunctionsRFMConcatenationSegmentationFlipkart
📊
📊 View Question Telemetry & Insights
Failure rate, silent bug autopsy & optimal query construction
Inspect →

Master SQL & Data Analytics

Ready to take your skills to the next level? Enroll in our comprehensive Data Analyst Career Track to master SQL, Python, Excel, and Power BI.

Explore the 12-Week Data Analyst Career Track

Related questions

  • Create Full Customer Namesbeginner
  • Number Tracks Within Albumsintermediate
  • Rank Artists by Album Countintermediate
  • Dense Rank Tracks by Priceintermediate
  • Compare Invoice Dates with LEAD/LAGintermediate
  • Running Total of Invoice Amountsintermediate
  • Segment Customers into Quartilesintermediate
  • Basic CTE: Artist Album Countsintermediate
SQL Editor

Run your code to see the result here.

Topfolio

Learn data analytics online. Real skills, real projects, real community.

courses

  • Career Tracks
  • Work Experience
  • Best Data Analyst Course in India
  • SQL Fundamentals
  • SQL Advanced
  • Python for Data
  • Micro Free Courses

practice

  • SQL Fundamentals Interview Test
  • SQL Advanced Coding Test
  • All Practice Tests

resources

  • How to Become a Data Analyst
  • SQL Interview Questions
  • Data Analyst Salary Guide
  • Free Datasets for Practice
  • SQL vs NoSQL Guide
  • Data Analyst vs Data Engineer vs Data Scientist

employers

  • Enterprise Screening
  • AI Proctoring Demo
  • Volume Pricing
  • Employer Portal

company

  • About
  • Terms
© 2026 Topfolio. All rights reserved.Made with ❤️ for aspiring analysts