logo

10 Oliver Wyman SQL Interview Questions (Updated 2024)

Updated on

August 11, 2024

At Oliver Wyman, SQL is essential for extracting and analyzing client data on market trends and customer behavior, which supports their consulting projects. It is also used to manage internal data on project timelines and resource allocation to improve operational efficiency, which is why Oliver Wyman includes SQL questions in interviews for Data Analytics, Data Science, and Data Engineering roles.

Thus, to help you prep for the Oliver Wyman SQL interview, here’s 10 Oliver Wyman SQL interview questions – scroll down to start solving them!

Oliver Wyman SQL Interview Questions

10 Oliver Wyman SQL Interview Questions

SQL Question 1: Identifying VIP Users at Oliver Wyman

Given a database of transactions at the consulting firm, Oliver Wyman, write a SQL query to identify the VIP clients. These are the clients that have expenditure exceeding $100,000 over the last quarter (three months).

Assuming we have a 'transactions' table with the following schema:

Example Input:
transaction_idclient_idtransaction_dateamount
1264501/01/202210000
2783201/10/202225000
9744502/05/202235000
1142302/28/202220000
2134503/12/202255000

Answer:


This query first filters out transactions that happened in the last quarter. Then it groups transactions by client_id, calculates the total amount spent by each client, and finally filters out those who have expenditure exceeding $100,000. The result will be a list of VIP clients and their corresponding total expenditure in the last quarter.

To practice a related customer analytics question on DataLemur's free online SQL code editor, try this Microsoft Azure Cloud SQL Interview Question:

Microsoft SQL Interview Question: Super Cloud Customer

SQL Question 2: Top Department Salaries

Imagine you had a table of Oliver Wyman employee salary data. Write a SQL query to find the top 3 highest paid employees within each department.

Oliver Wyman Example Input:

employee_idnamesalarydepartment_id
1Emma Thompson38001
2Daniel Rodriguez22301
3Olivia Smith20001
4Noah Johnson68002
5Sophia Martinez17501
8William Davis68002
10James Anderson40001

Example Input:

department_iddepartment_name
1Data Analytics
2Data Science

Example Output:

department_namenamesalary
Data AnalyticsJames Anderson4000
Data AnalyticsEmma Thompson3800
Data AnalyticsDaniel Rodriguez2230
Data ScienceNoah Johnson6800
Data ScienceWilliam Davis6800

Try this problem and run your code right in DataLemur's online SQL environment:

Top 3 Department Salaries

Answer:

We use the DENSE_RANK() window function to generate unique ranks for each employee's salary within their department, with higher salaries receiving lower ranks. Then, we wrap this up in a CTE and filter the employees with a ranking of 3 or lower.


If the solution above is tough, you can find a detailed solution with hints here: Top 3 Department Salaries.

SQL Question 3: What is database denormalization?

Database denormalization is when you add redundancy to a database, and break typical normalization rules (codified by the 1st, 2nd, 3rd normal forms).

Denormalization is typically used to improve the performance of a database, particularly when the database is being for OLAP (Online Analytical Processing) purposes. By denormalizing a database, you can reduce the number of joins that are required to retrieve data, which can greatly improve the speed of queries since joins are costly and slow. However, denormalization can also introduce some problems, such as increased data redundancy and the need for more complex update and delete operations since data has been duplicated into multiple tables.

In general, denormalization should be used with caution and only after careful consideration of the trade-offs involved. It's typically better to start with a well-normalized database design then denormalize only if your database isn't scaling as well as you want.

Oliver Wyman SQL Interview Questions

SQL Question 4: Calculate the Average Revenue per Consultant per Quarter

Oliver Wyman is a management consulting firm. Let's say they want to analyze the billing information for their consultants. They are interested in the Quarterly Average Revenue per Consultant.

For this analysis, they have a database table named "billings" in the following format:

Example Input:
billing_idconsultant_idclient_idbilling_daterevenue
101110012022-01-105000
102110022022-01-307000
103210012022-02-156000
104110032022-04-208000
105210032022-06-309000
106310022022-07-014000
107210042022-09-157500
108310012022-10-156500

The question: Write a SQL query that calculates the mean revenue per consultant for each quarter of the year.

Example Output:
YearQuarterconsultant_idAverage_Revenue
2022Q116000.00
2022Q126000.00
2022Q218000.00
2022Q229000.00
2022Q327500.00
2022Q334000.00
2022Q436500.00

Answer:


In this query, we use the function to calculate the average revenue per consultant for each quarter. The function is used to get the year and quarter from the billing_date. Then we group by year, quarter, and consultant id to get the result.

Please note, the function extracts the quarter of the year (a number from 1 to 4) from . We concatenate 'Q' with the extracted quarter number using operator to get the output in 'Q1', 'Q2', 'Q3', 'Q4' format.

p.s. Window functions show up pretty often during SQL interviews, so practice the 27+ window function questions on DataLemur

SQL Interview Questions on DataLemur

SQL Question 5: What would you do to optimize a SQL query that was running slow?

There's several steps you can take to troubleshoot a slow SQL query.

First things first, figure out why the query is slow! You can use and commands in PostgreSQL to identify any performance bottlenecks. After that, you can start changing your query, depending on what the source of the query performance issue is.

Generally, indexes can help speed up queries. Also de-normalizing your tables might help, to remove slow joins.

Lastly, you could always just upgrade your hardware! Time and money wasted improving query performance could just be better spent on mroe powerful database servers!

While this is a very surface-level approach to optimizing SQL query performance, it should do the trick for Data Analyst interviews and Data Science interviews at Oliver Wyman. Data Engineers should know a bit more about the and before the interview.

SQL Question 6: Filter Customer Records

Suppose you are working as a data analyst at Oliver Wyman. You have access to the customer records for an online store. The dataset includes customer details such as customer IDs, location, date of registration, product preferences, and the total amount of purchases made.

Your manager wants you to filter the data for customers who are from 'New York', registered after 'January 1, 2020', prefer 'Electronics' products, and have made purchases exceeding $5000. Write an SQL query to extract this information.

Here is some sample data for this task:

Example Input:
customer_idlocationregistration_dateproduct_preferencetotal_purchase
101New York2020-01-15Electronics8000
102Chicago2020-02-20Books3000
103New York2019-12-27Electronics6000
104San Francisco2020-03-14Books4000
105New York2020-04-01Electronics7800

Answer:


This query starts by selecting all records from the table. Then it filters the records based on four conditions using the clause along with the logical operators . The conditions mentioned check whether the location is 'New York', the registration date is after '2020-01-01', the product preference is 'Electronics', and the total purchase exceeds $5000. The result set will include all records that meet all these criteria.

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

The UNION operator combines the results from multiple SELECT statements into a single result set.

Here's an example of using the UNION operator to combine the results of two SELECT statements that retrieve data from tables of Oliver Wyman's Facebook ads and their Google ads:


This statement would return a combined result set of both Facebook and Google ads that have a spend greater than $200. The result set would include the following columns: ad_id, ad_name, ad_type, impressions, clicks, and spend.

Note that the two SELECT statements within the UNION must have the same number of columns and the columns must have similar data types. In this example, both SELECT statements have the same number of columns and the data types of the columns are all compatible.

SQL Question 8: Calculate Average Client Satisfaction Score

As an analyst at Oliver Wyman, your tasks often include evaluating the performance of ongoing consulting projects. You are given the task to find the average client satisfaction score of consulting projects. Satisfactions scores are based on feedback given by clients post-consultation, and they range from 1 (very dissatisfied) to 5 (very satisfied).

Example Input:
project_idclient_idstart_dateend_date
101120101/01/202201/31/2022
102150502/10/202203/05/2022
103120103/15/202205/15/2022
104150506/20/202207/20/2022
105178204/01/202205/01/2022
Example Input:
feedback_idproject_idclient_iddatesatisfaction_score
201101120102/01/20224
202102150503/06/20223
203103120105/16/20222
204104150507/21/20225
205105178205/02/20225

Answer:


This query calculates the average satisfaction score across all client feedback. By running this query, we get the average client satisfaction score across all projects. It doesn't require a GROUP BY statement because we want the average across all feedback, not broken down by project or client. The AVG() function in SQL calculates the mean of a set of values, and in this case, we are applying it to the column of the table.

To practice a very similar question try this interactive Amazon Average Review Ratings Question which is similar for requiring calculation of averages or this Alibaba Compressed Mean Question which is similar for requiring calculation of means.

SQL Question 9: Calculate the Click-Through Conversion Rate

Oliver Wyman is a company that sells a variety of digital consulting products. You are provided with two tables - , that gives you the number of users who clicked on various product advertisements, and , that shows the number of users who after clicking, added the product to their cart.

Calculate the click-through conversion rate for each product, defined as the number of actions divided by the number of , for the month of June 2022.

Example Input:
click_iduser_idclick_dateproduct_id
10112306/08/2022 00:00:0050001
20126506/10/2022 00:00:0069852
30136206/18/2022 00:00:0050001
40119207/26/2022 00:00:0069852
50198107/05/2022 00:00:0069852
Example Input:
add_iduser_idadd_dateproduct_id
10112306/08/2022 00:00:0050001
20126506/10/2022 00:00:0069852
30198107/05/2022 00:00:0069852

Answer:


The above SQL query first joins the and tables on and (using a left join to retain all records in the table) and restricts the results to the month of June 2022. It then calculates the click-through conversion rate by dividing the count of actions by the count of for each product. The multiplication by 1.0 is used to ensure that the calculation returns a floating point result.

To practice a related SQL interview question on DataLemur's free online SQL code editor, try this Facebook SQL Interview question:

Facebook App CTR SQL Interview question

SQL Question 10: What's the difference between a clustered and non-clustered index?

Both clustered and non-clustered indexes are used to improve query performance, but they have different characteristics.

A clustered index determines the physical order of the data rows in a table, while a non-clustered index does not. This means that a table can have only one clustered index, but it can have multiple non-clustered indexes.

In terms of query performance, a clustered index is usually faster for searches that return a large number of records, while a non-clustered index is faster for searches that return a small number of records. However, updates to a clustered index are slower, as they require the data rows to be physically rearranged, while updates to a non-clustered index are faster, as they only require the index data structure to be updated.

Preparing For The Oliver Wyman SQL Interview

The best way to prepare for a Oliver Wyman SQL interview is to practice, practice, practice. Beyond just solving the above Oliver Wyman SQL interview questions, you should also solve the 200+ FAANG SQL Questions on DataLemur which come from companies like Microsoft, Google, Amazon, and tech startups.

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 crucially, there is an interactive coding environment so you can easily right in the browser your query and have it graded.

To prep for the Oliver Wyman SQL interview you can also be helpful to practice interview questions from other management consulting companies like:

However, if your SQL skills are weak, forget about jumping right into solving questions – refresh your SQL knowledge with this free SQL for Data Analytics course.

DataLemur SQL tutorial

This tutorial covers SQL concepts such as sorting data with ORDER BY and aggregate window functions – both of which show up frequently in SQL interviews at Oliver Wyman.

Oliver Wyman Data Science Interview Tips

What Do Oliver Wyman Data Science Interviews Cover?

Besides SQL interview questions, the other types of questions to prepare for the Oliver Wyman Data Science Interview are:

Oliver Wyman Data Scientist

Discover how Oliver Wyman is harnessing the potential of AI and Data Analytics to drive business success!

How To Prepare for Oliver Wyman Data Science Interviews?

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

  • 201 interview questions taken from tech companies like Google & Microsoft
  • a crash course on SQL, Product-Sense & ML
  • over 1000+ reviews on Amazon & 4.5-star rating

Acing Data Science Interview

Also focus on the behavioral interview – prep for it with this guide on acing behavioral interviews.