Skip to content

Struggling with a Career Pivot? Use these 3 SQL Interview Questions as the Bridge to Business Analytics Mastery (Full Code Inside)

Last year, one of my coaching clients, Tara, was telling me about her journey of transitioning from the healthcare industry into business analytics.

It was hard for her because:

  • The words and terms in business analytics were confusing.
  • Everything in this field is changing very quickly.
  • She felt like she was always behind her coworkers.
  • She told me, “I’m always trying to catch up, and I’m tired.”

Avoid getting stuck on the never-ending treadmill

I told Tara about the smart way to think about SQL practice. It doesn’t have to be super time-consuming and boring. Which is how most people think about practicing SQL!

Here were Tara’s main takeaways from our coaching session:

  1. Easy problems taught her the basic stuff.
  2. Medium problems made her better at spotting trends in data.
  3. Hard problems helped her think of smart business solutions.

Soon, Tara felt much more prepared for SQL interviews.

Tons of confidence and never really stumbling on that part of the interview process.

What if:

  1. You felt comfortable with data, just like Tara?
  2. Hard business problems became fun puzzles for you?
  3. You felt proud and confident in your work?

That’s how Tara felt after switching how she thinks about SQL practice. And you can feel that way too. Because there’s a way to make it fun and engaging.

I went ahead and made a guide with easy, medium, and hard SQL problems to help people like Tara. And I hope it’s helpful to you!

How this guide works:

  1. Use the database diagram below to write the SQL that answers each question
  2. The questions get more difficult and are based on real-world business problems.
  3. If you get stuck, all of the SQL code you need can be found here.
  4. I’ve also listed all of the answers below. But try it on your own first!

Use this database diagram to answer the questions.


Question 1: Daily New User Signups (Beginner)

How many new users signed up for our platform each day in July 2023?

This one is straightforward – just sum the sales and limit your results to the “Epic Novels” product category.

This question is about tracking the daily growth of a platform, which is a very common task for marketing analytics.

Try it on your own and then check your answers against the online SQL code found here.

Question 2: Website Visits Before Purchase (Intermediate)

What’s the average number of visits to our website before a user makes a purchase?

This question gets into how JOINs work between tables and average aggregation functions.

By knowing how many times a user typically visits before buying, businesses can strategize their retargeting and remarketing campaigns more effectively.

Try it on your own and then check your answers against the online SQL code found here.

Question 3: Frequent Visitors Without Purchases (Advanced)

How many people visited our website more than once since July 2023 but didn’t make a purchase?

This is a complex query that assesses the mastery of CTEs, JOINs, and filtering in SQL.

From a marketing perspective, users who frequently visit but don’t convert are prime targets for specialized campaigns or surveys to understand potential obstacles in their purchase journey.

Try it on your own and then check your answers against the online SQL code found here.


Answer 1: Daily New User Signups (Beginner)

Here’s my SQL. View the online version here.

-- Question 1: Beginner Level
-- Get daily user signups since July 2023
SELECT signup_date, COUNT(user_id) AS daily_signups
FROM users
WHERE signup_date >= '2023-07-01'
GROUP BY signup_date
ORDER BY signup_date;

This query selects the date of signup and counts how many users signed up on each of those dates. It filters only the records created after July 2023 using the WHERE clause.

GROUP BY combined with COUNT provides the number of signups for each day.

Answer 1 Results

[removed for readability…][…]

Answer 2: Website Visits Before Purchase (Intermediate)

Here’s my SQL. View the online version here.

-- Question 2: Intermediate Level
-- Find the average number of website visits before a purchase
WITH PurchaseVisits AS (
    SELECT user_id, COUNT(visit_id) AS visits_before_purchase
    FROM website_visits
    WHERE user_id IN (SELECT DISTINCT user_id FROM purchases)
    GROUP BY user_id
SELECT AVG(visits_before_purchase) AS avg_visits
FROM PurchaseVisits;

Using a Common Table Expression (CTE) named PurchaseVisits, we count the visits of users who have made a purchase. We then calculate the average of these visits.

The CTE filters website visits for only those users who made a purchase.

The AVG function calculates the average number of visits for these users.

Answer 2 Results


Answer 3: Frequent Visitors Without Purchases (Advanced)

Here’s my SQL. View the online version here.

-- Question 3: Advanced Level
-- Identify frequent visitors since July 2023 without a purchase
WITH FrequentVisitors AS (
    SELECT user_id
    FROM website_visits
    WHERE visit_date >= '2023-07-01'
    GROUP BY user_id
    HAVING COUNT(visit_id) > 1
SELECT f.user_id
FROM FrequentVisitors f
LEFT JOIN purchases p ON f.user_id = p.user_id
WHERE p.purchase_id IS NULL;

The CTE FrequentVisitors identifies users with more than one visit since July 2023. The main query then filters out users who made a purchase and retrieves those who match the criteria in the CTE.

The HAVING clause in the CTE filters users with more than one visit.

The LEFT JOIN combined with WHERE p.purchase_id IS NULL ensures we only get users without a purchase.

Answer 3 Results


Tara struggled to switch from healthcare to business analytics.

By starting with basic SQL tasks and advancing to more complex problems, Tara quickly built the confidence she needed to succeed.

I hope that this guide provides SQL lessons for you if you’re facing a similar challenge.

Key takeaways:

  • Moving from healthcare to business analytics is tough.
  • Don’t get stuck as you work through hard topics and big changes.
  • Start with basic SQL, then tackle harder tasks.
  • Practicing SQL problems is never a bad idea.

So, what SQL problem are you going to tackle next?

Leave a Reply

Your email address will not be published. Required fields are marked *