logo

11 Progress Software SQL Interview Questions (Updated 2024)

Updated on

March 3, 2024

At Progress Software, SQL does the heavy lifting for analyzing complex datasets in their database management software, and refining user experience by tracking software usage and performance patterns. That's why Progress Software asks SQL problems in interviews for Data Science, Analytics, and & Data Engineering jobs.

So, to help you study for the Progress Software SQL interview, we've curated 11 Progress Software SQL interview questions – can you answer each one?

11 Progress Software SQL Interview Questions

SQL Question 1: Identify Top Software Purchaser

Progress Software Company would like to know which users are the most frequent purchasers of their software products. These "power users" are identified as having the highest number of purchases in the database. In particular, they are interested in identifying those users who have made more than 10 purchases in the last year.

Example Input:
purchase_iduser_idpurchase_dateproduct_idprice
10112022-06-01 00:00:00100199.99
10212022-06-02 00:00:001002199.99
10322022-06-03 00:00:00100349.99
10432022-06-10 12:45:00100199.99
10532022-06-12 15:30:001002199.99

Answer:


In the above SQL block, we first select the user_id from the purchases table and then count the number of purchases each user made. By using the WHERE clause, we're limiting our search to purchases made within the last year. The GROUP BY clause allows us to aggregate the data by user_id. As per the requirement, we're only interested in users who made more than 10 purchases; hence, we're using the HAVING clause to filter these users out. Finally, we order the results in descending order by the number of purchases, providing the list of "power users".

To practice a related customer analytics question on DataLemur's free online SQL coding environment, try this Microsoft SQL Interview problem: Microsoft SQL Interview Question: Super Cloud Customer

SQL Question 2: Analyzing Software Sales

Progress Software company maintains a record of their product sales each month. The sales analysts have been tasked to understand how well each product has been performing on an average on each month.

Given a table that includes information such as , , , and , write a SQL query to calculate the average monthly sales for each product. Assume the column represents the sales revenue for the corresponding product.

Example Input:
sale_idproduct_idsale_dateamount
301100101/02/202225000
402100201/15/202215000
503100101/20/202222000
504100202/12/202217000
505100302/20/202220000
Example Output:
monthproductavg_sales
1100123500
1100215000
2100217000
2100320000

Answer:


In this query, the function is used to get the month from the . The function is used to calculate the average sales for each product, grouped by the month and product id. The clause divides the sales into groups of each month and product, and the average sales are calculated for each group. This result is then ordered by the month and product.

Pro Tip: Window functions are a frequent SQL interview topic, so practice all the window function problems on DataLemur

DataLemur SQL Questions

SQL Question 3: Name the different types of joins in SQL. What does each one do?

Using a join in SQL, you can retrieve data from multiple tables and merge the results into a single table.

In SQL, there are four distinct types of JOINs. To demonstrate each kind, Imagine you had two database tables: an table that contains data on Google Ads keywords and their bid amounts, and a table with information on product sales and the Google Ads keywords that drove those sales.

  • : An INNER JOIN retrieves rows from both tables where there is a match in the shared key or keys. For example, an INNER JOIN between the table and the table could be performed using the keyword column as the shared key. This would retrieve only the rows where the keyword in the table matches the keyword in the table.

  • : A LEFT JOIN retrieves all rows from the left table (in this case, the table) and any matching rows from the right table (the Sales table). If there is no match in the right table, values will be returned for the right table's columns.

  • : A RIGHT JOIN retrieves all rows from the right table (in this case, the Sales table) and any matching rows from the left table (the table). If there is no match in the left table, values will be returned for the left table's columns.

  • : A FULL OUTER JOIN retrieves all rows from both tables, regardless of whether there is a match in the shared key or keys. If there is no match, values will be returned for the columns of the non-matching table.

Progress Software SQL Interview Questions

SQL Question 4: Sales Performance Analysis

As a Database Engineer at Progress Software, suppose you are given the task of understanding the sales performance of different software products sold by the company. The company has data stored within two tables - and .

The table contains the unique product_id, product_name and product_category for all the products sold by the company.

The table records each sale with unique sale_id, the product_id of the product sold, the sale_date and the sale_amount.

Can you write a SQL query that shows total sales amount for each product for the year 2021, sorted from highest to lowest?

Example Input:
product_idproduct_nameproduct_category
101System 1System Software
102Office App 2Office Application
103Design App 1Design Software
104Security App 1Security Software
Example Input:
sale_idsale_dateproduct_idsale_amount
100101/12/2021101500
100204/25/2021102350
100306/18/2021103400
100410/13/2021101500
100511/26/2021104450

Answer:

Here is the SQL query:


This query first joins and tables based on the common column . It then restricts the data to the year 2021 using the clause. is then used to get the total sales for each product in 2021. This is grouped by the product name and ordered in descending order to show the products with the highest sales first.

SQL Question 5: Can you explain the distinction between an inner and a full outer join?

A full outer join returns all rows from both tables, including any unmatched rows, whereas an inner join only returns rows that match the join condition between the two tables.

For an example of each one, say you had sales data exported from Progress Software's Salesforce CRM stored in a datawarehouse which had two tables: and .

: retrieves rows from both tables where there is a match in the shared key or keys.


This query will return rows from the sales and tables that have matching customer id values. Only rows with matching values will be included in the results.

: retrieves all rows from both tables, regardless of whether there is a match in the shared key or keys. If there is no match, NULL values will be returned for the columns of the non-matching table.

Here is an example of a SQL full outer join using the sales and tables:


SQL Question 6: Filter Customers based on Subscription and Location

Filter out customers who have an active subscription and are from 'Los Angeles'. We will use and tables for this task.

Example Input:

Example Input:

Example Output:

Answer:


In the SQL query above, we have used to join table and table based on . We used statement to identify if a customer has an active subscription, and the clause specified the conditions that must be met.

SQL Question 7: What is denormalization?

Denormalization is the practice of altering a database schema in a way that breaks the normalization rules (1st, 2nd, 3rd normal forms).

Denormalization is done to improve the performance of the database when it is being used for online analytics processing (OLAP), rather than online transaction processing (OLTP) use cases.

For these OLAP use cases, you're bottleneck frequently is joining multiple tables, but de-normalizing your database cuts these outs.

Denormalization can improve query performance by reducing the number of expensive joins required to retrieve data, but it comes with its own drawbacks too. By adding redundant columns, you incur more data storage costs, and there's need for more complex update and delete operations in order to maintain data integrity across all the duplicated data. Thus, it's important to carefully consider the trade-offs involved before implementing denormalization.

SQL Question 8: Analyzing Click-Through-Rates for Progress Software

Progress Software is interested in understanding user interactions with its digital ads. They want to analyze the Click-Through-Rates (CTR) of these ads and how often they lead to conversions, specifically adding products to the cart for purchase.

We have two tables:

maintains details about the users who clicked on the ads.

Example Input:
click_iduser_idad_idclick_time
1001234512306/08/2022 00:00:00
1002896512406/10/2022 00:00:00
1003874212306/18/2022 00:00:00
1004128312407/26/2022 00:00:00
1005452112307/05/2022 00:00:00

maintains details about the users who added a product to the cart.

Example Input:
addition_iduser_idproduct_idaddition_time
2001234545606/08/2022 00:05:00
2002896545706/11/2022 00:00:00
2003128345607/26/2022 03:00:00
2004452145707/06/2022 01:00:00
2005999945607/06/2022 01:30:00

Write a SQL query that provides the CTR (the number of unique users who clicked on an ad and then added a product to the cart within one hour of clicking the ad as a percentage of total unique users who clicked the ad) for each ad.

Answer:


This query first identifies users who clicked an ad and added a product to the cart within an hour, taking into account the uniqueness of the users. Then it calculates the total number of unique clicks on each ad. Finally, it calculates the CTR by taking the total number of unique click-and-add user interactions, divided by the total unique clicks, and multiplying the result by 100 to get the percentage CTR for each ad.

To solve a related problem on DataLemur's free online SQL code editor, solve this Facebook SQL Interview question: SQL interview question asked by Facebook

SQL Question 9: Filter Customer Records using SQL LIKE

As a data analyst at Progress Software, a main part of your role is querying the user datasets to find specific patterns based on the company needs. Given the database of customer records, can you write a SQL query to find all the customers whose email addresses are based in the domain "@progress.com"?

Example Input:
customer_idfirst_namelast_nameemailcreated_at
1JohnDoejohn.doe@progress.com2022-01-01 12:10:10
2JaneDoejane.doe@gmail.com2021-10-10 09:18:10
3JackSmithjack.smith@progress.com2022-05-18 16:20:03
4JillJohnsonjill.johnson@mail.com2021-02-12 14:00:00
5JamesBrownjames.brown@progress.com2022-03-13 12:18:22
Example Output:
customer_idfirst_namelast_nameemailcreated_at
1JohnDoejohn.doe@progress.com2022-01-01 12:10:10
3JackSmithjack.smith@progress.com2022-05-18 16:20:03
5JamesBrownjames.brown@progress.com2022-03-13 12:18:22

Answer:


In the provided query, we filter the results using the keyword along with the '%' wildcard pattern, which selects all customers with an email domain of "@progress.com". This pattern matches any sequence of characters followed by "@progress.com". Hence, it will fetch the data of customers with the email domain "@progress.com".

SQL Question 10: Could you describe the function of UNION in SQL?

{#Question-10}

The operator merges the output of two or more statements into a single result set. The two SELECT statements within the UNION must have the same number of columns and the data types of the columns are all compatible.

For example, if you were a Data Analyst on the marketing analytics team at Progress Software, this statement would return a combined result set of both Progress Software's Google and Facebook ads that have more than 300 impressions:


SQL Question 11: Calculating the Net Sales Growth Percentage

The sales team at Progress Software wants to understand the month-over-month net sales growth percentage. The tables contain data about each sale including its amount, date, and the product sold. Your task is to calculate the growth or decline in the average net sales from the previous month for each product.

The tables and are structured as follows:

Example Input:
sale_iddateproduct_idnet_sale_amount
10101/02/20221001200.00
10201/27/20221001300.00
10301/30/20221002150.00
10402/02/20221001220.00
10502/03/20221002340.00
Example Input:
product_idproduct_name
1001Wonder App
1002Miracle App
Example Output:
product_namemonthavg_net_sale_amountmo_m_growth_percentage
Wonder AppJan-2022250.00null
Miracle AppJan-2022150.00null
Wonder AppFeb-2022220.00-12.00
Miracle AppFeb-2022340.00126.67

Answer:


This SQL query first creates a CTE (Common Table Expression) to calculate the average net sale amount for each product every month. Then in the main query, for each product's each month's average net sale, it calculates the growth percentage compared to the average net sale of the last month. The function is used to handle the null values for the first month. The function is used to round the result to two decimal places.

To practice a very similar question try this interactive Wayfair Y-on-Y Growth Rate Question which is similar for calculating growth rate in sales or this Amazon Highest-Grossing Items Question which is similar for identifying top performing products.

How To Prepare for the Progress Software SQL Interview

The best way to prepare for a SQL interview, besides making sure you have strong SQL fundamentals, is to practice a ton of real SQL questions that were asked in recent job interviews. In addition to solving the earlier Progress Software SQL interview questions, you should also solve the 200+ SQL questions on DataLemur which come from companies like FAANG tech companies and tech startups. DataLemur Questions

Each exercise has hints to guide you, full answers and crucially, there is an online SQL coding environment so you can right online code up your SQL query and have it checked.

To prep for the Progress Software SQL interview it is also useful to solve interview questions from other tech companies like:

In case your SQL coding skills are weak, don't worry about going right into solving questions – strengthen your SQL foundations with this SQL tutorial for Data Analytics.

DataLemur SQL Tutorial for Data Science

This tutorial covers topics including LEAD window function and aggregate functions like SUM()/COUNT()/AVG() – both of which pop up frequently in Progress Software interviews.

Progress Software Data Science Interview Tips

What Do Progress Software Data Science Interviews Cover?

In addition to SQL interview questions, the other topics to practice for the Progress Software Data Science Interview are:

  • Stats Interview Questions
  • Python or R Programming Questions
  • Product Analytics Questions
  • Machine Learning and Predictive Modeling Questions
  • Behavioral & Resume-Based Questions

Progress Software Data Scientist

How To Prepare for Progress Software Data Science Interviews?

To prepare for Progress Software Data Science interviews read the book Ace the Data Science Interview because it's got:

  • 201 interview questions sourced from Facebook, Google, & Amazon
  • a crash course covering Stats, SQL & ML
  • over 900+ 5-star reviews on Amazon

Ace the Data Science Interview by Nick Singh Kevin Huo