11 PROG Holdings SQL Interview Questions (Updated 2024)

Updated on

June 23, 2024

Data Science, Data Engineering and Data Analytics employees at PROG Holdings write SQL queries almost every single workday. They use SQL for extracting customer rental data for analytics and managing data in their lease-to-own retail databases. That's why PROG Holdings typically asks folks interviewing for data jobs SQL coding interview questions.

So, to help you practice, here’s 11 PROG Holdings SQL interview questions – can you solve them?

11 PROG Holdings SQL Interview Questions

SQL Question 1: Identify Power Users in PROG Holdings

PROG Holdings is a company that leases out various types of products (From appliances to furniture and more). You are given the following tables:

  1. table records all users that have ever done any transaction with PROG Holdings. Here are some sample data:

    22022-01-10New York
  2. table records all user activity in terms of transactions over time. Here is a snapshot of data:


As a data analyst of PROG Holdings, you are tasked to identify the power users. We define "power users" as users who have spent more than $500 in the last 30 days. Write a SQL query that returns all power users' and their respective total expenditure in the last 30 days.


In this SQL query, we first join the and table on . We then filter out the transactions that occurred in the last 30 days using the WHERE clause. Next, we group by to aggregate the total expenditure of each user. Finally, we use the HAVING clause to get only those users whose total expenditure is greater than $500.

To practice a related super-user data analysis question on DataLemur's free online SQL code editor, try this Microsoft Teams Power User SQL Interview Question: Microsoft SQL Interview Question: Teams Super User

SQL Question 2: Second Highest Salary

Assume there was a table of PROG Holdings employee salary data. Write a SQL query to find the 2nd highest salary at the company.

PROG Holdings Example Input:


Example Output:


Check your SQL query for this problem and run your code right in the browser:

2nd Highest Salary SQL Interview Question


You can find a step-by-step solution here: 2nd Highest Salary.

SQL Question 3: What are the similarities and differences between a clustered index and non-clustered index?

Clustered indexes have a special characteristic in that the order of the rows in the database corresponds to the order of the rows in the index. This is why a table can only have one clustered index, but it can have multiple non-clustered indexes.

The main difference between clustered and non-clustered indexes is that the database tries to maintain the order of the data in the database to match the order of the corresponding keys in the clustered index. This can improve query performance as it provides a linear-access path to the data stored in the database.

PROG Holdings SQL Interview Questions

SQL Question 4: Calculate the dense rank of each customer based on their total purchasing amount.

In PROG Holdings, every customer has different purchasing habits and their total amount varies. You are a Data Analyst who is asked to provide insights on the customer purchasing power ranking. Your task is to write a SQL query which will assign each customer a dense rank based on their total purchasing amount. The customer who has the highest purchasing amount will get the highest rank (1). If two customers have the same purchasing amount, they will get the same rank and the next rank will not be skipped.

Example Input:
100115005/06/2022 00:00:00500
100235006/12/2022 00:00:001200
100315006/20/2022 00:00:00700
100465007/15/2022 00:00:00400
100535007/21/2022 00:00:00800
Example Output:


This SQL query employs a window function, , that gives each customer a rank based on their total purchasing amount in descending order. The clause is used to aggregate the total purchasing amount of each customer. The window function helps us assign the rank to each user without actually altering the structure of the original data.

To solve a similar window function interview problem which uses RANK() on DataLemur's free interactive coding environment, try this Amazon SQL question asked in a BI Engineer interview: Amazon Highest-Grossing Items SQL Analyis Question

SQL Question 5: What is the purpose of the constraint, and when might it be helpful to use it?


The CHECK constraint is used to enforce rules on the data in a specific column. If a row is inserted or updated with data that does not follow the CHECK constraint's rule, the operation will fail.

For example, say you had a marketing analytics database that stores ad campaign data from PROG Holdings's Google Analytics account.

Here's what some constraints could look like:

The CHECK constraint is used in the above example to make sure that the "budget" and "cost_per_click" fields contain only positive values. This helps to maintain the validity and integrity of the data in the context of ad campaigns.

The CHECK constraint can also be used to enforce other specific conditions on data. For example, you can use it to ensure that the "start_date" for each ad campaign is earlier than the "end_date."

SQL Question 6: Data Analysis for Customer Purchases

As an analyst at PROG Holdings, you have been assigned to analyze the customer data to find out the number of purchases made by customers in a specific city. The main task is to write a SQL query that retrieves the total number of purchases made by customers in 'New York' in the year 2021 filtering by 'Purchase_Amount' greater than $1000.

Consider the following table :

Example Input:
customer_idcustomer_namecitypurchase_date (YYYY-MM-DD)purchase_amount
110John DoeNew York2021-04-201500
112Jane SmithSan Francisco2021-06-10700
113Samantha GreenNew York2021-05-151200
114Billy ThompsonNew York2021-10-051050
115Sharon ParkerChicago2022-03-28500


This PostgreSQL query will filter the records for customers who made purchases in the city of New York in 2021 with a purchase amount of more than $1000. The COUNT(*) function will then count the total number of records that satisfy these conditions, giving us the total number of such purchases. Please note, the date range of '2021-01-01' to '2022-01-01' has been used to ensure it covers all days in the year 2021.

SQL Question 7: In database design, what do foreign keys do?

A foreign key is a column or group of columns in a table that refers to the primary key in another table. The foreign key constraint helps maintain referential integrity between the two tables.

Let's examine employee data from PROG Holdings's HR database:


+------------+------------+------------+------------+ | employee_id| first_name | last_name | manager_id | +------------+------------+------------+------------+ | 1 | Aubrey | Graham | 3 | | 2 | Marshal | Mathers | 3 | | 3 | Dwayne | Carter | 4 | | 4 | Shawn | Carter | | +------------+------------+------------+------------+

In this table, serves as the primary key and functions as a foreign key because it links to the of the employee's manager. This establishes a relationship between PROG Holdings employees and their managers, allowing for easy querying to find an employee's manager or see which employees report to a specific manager.

The table may also have multiple foreign keys that reference primary keys in other tables. For example, and foreign keys could be used to connect each employee to their respective department and location.

SQL Question 8: Calculate the Average Quantity of Items Rented

PROG Holdings is a company renting various types of items to its customers. They want to optimize their inventory by offering more of items in high demand and reducing stock of less demanded items. In order to make an informed decision, they want to identify the items which are most frequently rented on average.

Example Input:


What is the average quantity of each item rented by customers?


The above query groups all the rental records by . Then, the AVG function calculates the average quantity of each group. This will return a list of along with their corresponding average quantity rented from the table.

Example Output:

To practice a very similar question try this interactive Amazon Highest-Grossing Items Question which is similar for analyzing item popularity or this Alibaba Compressed Mean Question which is similar for calculating average quantity.

SQL Question 9: Find Customers with a Specific Name Pattern

Assume that you are working as a data analyst at PROG Holdings. You are tasked to filter from the customer database, all the customers whose names start with 'J' and contain 'son' anywhere in it.

For this task, it is assumed that the customers' information is stored in a customer table in the PostgreSQL database.

Example Input:
101JohnJohnsonjohn@example.com01/05/2020 00:00:00
102JakeOlsonjake@example.com20/06/2021 00:00:00
103JanePetersonjane@example.com12/04/2022 00:00:00
104PaulSmithpaul@example.com15/07/2019 00:00:00
105BillWhitebill@example.com22/08/2018 00:00:00

Your job is to write an SQL query to filter down the customer records of customers whose names match the specific pattern.


In PostgreSQL, the task can be accomplished by using the keyword which allows us to match customers name using a pattern. Here is the PostgreSQL query:

Write-up of the answer:

The SQL query will return all customer records where the first name of the customer starts with a 'J' and either the first name or last name contains 'son'. The '%' symbol is used as a wildcard character to match any sequence of characters. The 'J%' pattern means any string that starts with 'J', and the '%son%' pattern means any string that contains 'son'.

SQL Question 10: What's the purpose of the the command?

If you have two tables and want to retrieve only the rows that are present in both tables, just use the operator!

For example, let's use to find all of PROG Holdings's Facebook video ads that are also being run on YouTube:

SQL Question 11: Analyze Customers and Orders in the Database

As a data analyst at PROG Holdings, you are tasked to analyze the customers' database and their respective orders. Write a SQL query to join two relevant tables - one with customer information () and the other with order details (). Your goal is to retrieve all customer details (id, name, contact information, etc.) along with the total number of orders each customer has placed.

Ensure your query also handles the situation where a customer has not placed any orders - these customers should still appear in your result, with a total orders count of 0.

Here are sample and tables for context:

Example Input:
1254Morgan Smithmorgan.smith@example.com
2345Alex Johnsonalex.johnson@example.com
3456Liam Williamsliam.williams@example.com
4567Emma Jonesemma.jones@example.com
Example Input:


The provided query performs a LEFT JOIN on the and tables - this ensures that even customers who have not placed any orders are included in the results. Additionally, it uses the clause to count the total number of orders per customer. The is used to sort the results by the .

Because join questions come up frequently during SQL interviews, take a stab at this interactive Snapchat Join SQL question: Snapchat JOIN SQL interview question

How To Prepare for the PROG Holdings SQL Interview

The best way to prepare for a PROG Holdings SQL interview is to practice, practice, practice. In addition to solving the earlier PROG Holdings SQL interview questions, you should also solve the 200+ SQL questions on DataLemur which come from companies like Netflix, Airbnb, and Amazon. DataLemur SQL and Data Science Interview Questions

Each interview question has multiple hints, fully explained answers along with a discussion board to see how others solved it and best of all, there's an online SQL coding environment so you can right in the browser run your query and have it executed.

To prep for the PROG Holdings SQL interview you can also be a great idea to practice interview questions from other tech companies like:

However, if your SQL query skills are weak, don't worry about going right into solving questions – improve your SQL foundations with this DataLemur SQL tutorial.

Interactive SQL tutorial

This tutorial covers SQL topics like aggregate functions and LEAD window function – both of these pop up often in PROG Holdings interviews.

PROG Holdings Data Science Interview Tips

What Do PROG Holdings Data Science Interviews Cover?

Beyond writing SQL queries, the other types of problems covered in the PROG Holdings Data Science Interview are:

  • Probability & Statistics Questions
  • Python or R Coding Questions
  • Product Analytics Questions
  • ML Modelling Questions
  • Behavioral Interview Questions

PROG Holdings Data Scientist

How To Prepare for PROG Holdings Data Science Interviews?

I'm sort of biased, but I think the optimal way to prep for PROG Holdings Data Science interviews is to read the book Ace the Data Science Interview.

The book solves 201 interview questions taken from FAANG (FB, Apple, Amazon, Netflix, Google). It also has a crash course covering SQL, AB Testing & ML. And finally it's helped thousands of people land their dream job in data, which is why it's earned 1000+ reviews on Amazon and a 4.5-star rating.

Ace the Data Science Interview by Nick Singh Kevin Huo