9 Publicis Groupe SQL Interview Questions (Updated 2024)

Updated on

June 30, 2024

At Publicis Groupe, SQL is used to gather marketing data and develop insights to power their marketing campaigns. For this reason Publicis Groupe asks SQL questions in interviews for Data Analyst, Data Science, and BI jobs.

Thus, to help you study, we've curated 9 Publicis Groupe SQL interview questions – how many can you solve?

Publicis Groupe SQL Interview Questions

9 Publicis Groupe SQL Interview Questions

SQL Question 1: Calculate Monthly Average Rating for each Product

Publicis Groupe is a global leader in communication. One of their subsidiary, Performics, is digital performance marketing company, who deals with clients' product marketing. For a particular client, Performics has been running an online campaign. Users are allowed to leave reviews and rate the product on a scale of 1-5.

Write a SQL query to calculate the monthly average rating for each product.

Example Input:
Example Output:


You can use the function to get the month part of the date and the function to calculate the average. The function can be used to round off to the required decimal places.

This query groups the reviews by month and product_id and then calculates the average rating for each grouping. The averages are rounded to two decimal places for better readability.

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

DataLemur Window Function SQL Questions

SQL Question 2: Employees Earning More Than Managers

Given a table of Publicis Groupe employee salary information, write a SQL query to find all employees who make more money than their own boss.

Publicis Groupe Example Input:

1Emma Thompson38001
2Daniel Rodriguez2230110
3Olivia Smith800018
4Noah Johnson680028
5Sophia Martinez1750110
8William Davis70002NULL
10James Anderson40001NULL

Example Output:

3Olivia Smith

This is the output because Olivia Smith earns $8,000, surpassing her manager, William Davis who earns 7,800.

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

Employees Earning More Than Their Manager


First, we perform a SELF-JOIN where we treat the first table () as the managers' table and the second table () as the employees' table. Then we use a clause to filter the results, ensuring we only get employees whose salaries are higher than their manager's salary.

If the solution above is confusing, you can find a detailed solution with hints here: Well Paid Employees.

SQL Question 3: How can you identify duplicates in a table? Do have any other approaches?

"One creative way is to use the window function ROW_NUMBER() and partition by whichver columns you are loooking for duplicates in. If any row has a row_number() more than 1, then it's a duplicate!

You could also use COUNT(DISTINCT col1) vs. COUNT(*) and see if they return different numbers, indicating the prescence of duplicates!

Publicis Groupe SQL Interview Questions

SQL Question 4: Campaign Performance Analysis Database Design

Publicis Groupe is a global leader in marketing, communication, and digital transformation. As a data engineer, you are tasked with designing a database to aid in analyzing the performance of its advertisement campaigns. A campaign is uniquely identified with a campaign_id and has attributes such as start_date, end_date, and budget. Each campaign targets multiple platforms like TV, Online, Print, etc. Each platform has a set of ads that run on it during the campaign period. Each Ad has attributes like ad_id, launch_date, platform, cost, click_through_rate, and conversion_rate. Conversion is considered successful when a user completes a desired action like signup or purchase.

Design the tables and and their relationships. What would be the columns of each table and what considerations would you have for this specific design?

Sample Input:

Sample Input:

Following question applies to above database structure:

Calculate the total cost, total conversions, and conversion cost (total cost/total conversions) for each campaign, considering that total conversions are calculated by ((click_through_rate) * (conversion_rate) * (campaign's budget)).


This query groups by campaign id, then calculates the total cost as the sum of cost of all ads for the campaign. Total conversions are calculated using the formula provided. If there are any conversions, calculation of conversion cost is done using total cost and total conversions; otherwise null value is returned to handle division by zero error.

SQL Question 5: Why are foreign key's important in databases?

A foreign key is a field in a database table that links to the primary key of another table, establishing a connection between the two tables.

To demonstrate this concept, let's analyze Publicis Groupe's marketing analytics database which stores data from Google Ads campaigns:


+------------+------------+------------+------------+ | ad_id | campaign_id| keyword | click_count| +------------+------------+------------+------------+ | 1 | 100 | Publicis Groupe pricing | 10 | | 2 | 100 | Publicis Groupe reviews | 15 | | 3 | 101 | Publicis Groupe alternatives | 7 | | 4 | 101 | buy Publicis Groupe | 12 | +------------+------------+------------+------------+

is a foreign key. It references the of the Google Ads campaign that each ad belongs to, establishing a relationship between the ads and their campaigns. This foreign key allows you to easily query the table to find out which ads belong to a specific campaign, or to find out which campaigns a specific ad belongs to.

It is also possible for a table to have multiple foreign keys that reference different primary keys in other tables. For example, the table could have additional foreign keys for the of the ad group that each ad belongs to, and the of the Google Ads account that the campaigns belong to.

SQL Question 6: Calculate Click Through Rates For Ads

Given two tables, 'ad_clicks' and 'product_views', for Publicis Groupe. 'ad_clicks' table records every time a user clicks an ad. 'product_views' table records every time a user views a product after clicking an ad. Calculate the click through rate (CTR) as a ratio of 'product_views' to 'ad_clicks' for each ad campaign.

Example Input:
10145610/01/2022 00:00:006001
10276510/01/2022 00:00:006001
10390110/02/2022 00:00:006002
10478910/02/2022 00:00:006002
10565410/03/2022 00:00:006001
Example Input:
20145610/01/2022 00:01:006001
20276510/01/2022 00:05:006001
20378910/02/2022 00:04:006002
20490110/02/2022 00:02:006002
20565410/03/2022 00:10:006001
20678910/03/2022 00:03:006002


SQL Query:

The query joins 'ad_clicks' and 'product_views' tables on 'user_id' and 'campaign_id'. The 'click_through_rate' is then calculated by counting the number of unique 'view_id's and dividing it by the number of unique 'click_id's for each 'campaign_id'.

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

SQL Question 7: Can you define what a database index is, and give some examples of different types of indexes?


In a database, an index is a data structure that improves the speed of data retrieval operations on a database table at the cost of additional writes and the use of more storage space to maintain the index data structure.

There are several types of indexes that can be used in a database:

  1. Primary index: a unique identifier for each row in a table and is used to access the row directly.
  2. Unique index: used to enforce the uniqueness of the indexed columns in a table. It does not allow duplicate values to be inserted into the indexed columns.
  3. Composite index: is created on multiple columns of a table. It can be used to speed up the search process on the combination of columns.
  4. Clustered index: determines the physical order of the data in a table. There can be only one clustered index per table.
  5. Non-clustered index: does NOT determine the physical order of the data in a table. A table can have multiple non-clustered indexes.

SQL Question 8: Finding Clients with a Specific Pattern

As a data analyst at Publicis Groupe, your task involves dealing with the client records database. One of the attributes of each record is the . Your manager asks you to create a list of all clients whose names contain the substring "Media" as the company is interested in focusing on media companies for the next quarter. Use the SQL keyword to filter these records out.

Here is the structure and some example data from the table:

Example Input:
1XYZ MediaMediaMumbai
2Alpha Co.HealthcareSan Francisco
3Media MagicMediaNew York
4Bella ElectronicsElectronicsLondon
5Media123 SolutionsMediaTokyo


Example Output:

1XYZ MediaMediaMumbai
3Media MagicMediaNew York
5Media123 SolutionsMediaTokyo

This specific query will return the records of all the clients whose names contain the substring "Media" anywhere in their name. The percent symbol (%) in the LIKE query is used as a wildcard that matches any sequence of characters. So, '%Media%' will match any client name that has "Media" anywhere in it. The output will consist of all columns from the original table for these matched records.

SQL Question 9: Joining and Analyzing Customer and Purchase Orders Data

You are a data analyst at Publicis Groupe and you have been tasked to analyze the customer database in order to get insights regarding the purchase orders done by the customers. You have two main tables, one containing customer information () and the other containing data about orders made by these customers ().

Write a SQL query that joins the and table on the and calculate the total amount spent by each customer.

Example Input:
1JohnDoejohn@example.com2022-01-03 12:31:31
2JaneDoejane@example.com2022-02-20 14:21:24
3AliceJohnsonalice@example.com2022-04-01 08:05:12
4BobJohnsonbob@example.com2022-05-19 19:13:31
Example Input:
101150001802022-03-10 09:15:16
1022698521002022-04-25 11:42:10
103350001902022-06-08 13:00:00
1044698521002022-07-26 16:31:10
1051698521002022-07-05 18:19:42


This query will provide the total amount spent by each customer on their orders. The clause combines rows from and based on shared . The clause groups the result by , , and , and the function sums the column for each grouped customer.

Because joins come up routinely during SQL interviews, take a stab at this Spotify JOIN SQL question: SQL join question from Spotify

Publicis Groupe SQL Interview Tips

The key to acing a Publicis Groupe SQL interview is to practice, practice, and then practice some more! In addition to solving the earlier Publicis Groupe SQL interview questions, you should also solve the 200+ FAANG SQL Questions on DataLemur which come from companies like FAANG and tech startups. DataLemur Question Bank

Also check out the Publicis Groupe Career page to see what requirements they are looking for in their open positions.

Each problem on DataLemur 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 answer and have it executed.

To prep for the Publicis Groupe SQL interview you can also be a great idea to solve interview questions from other advertising companies like:

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

DataLemur SQL tutorial

This tutorial covers SQL concepts such as HAVING and filtering data with WHERE – both of which show up often during SQL job interviews at Publicis Groupe.

Publicis Groupe Data Science Interview Tips

What Do Publicis Groupe Data Science Interviews Cover?

In addition to SQL interview questions, the other types of problems to practice for the Publicis Groupe Data Science Interview include:

Publicis Groupe Data Scientist

How To Prepare for Publicis Groupe Data Science Interviews?

The best way to prepare for Publicis Groupe Data Science interviews is by reading Ace the Data Science Interview. The book's got:

  • 201 Interview Questions from Facebook, Google & startups
  • A Refresher on Stats, SQL & ML
  • Great Reviews (1000+ reviews, 4.5-star rating)

Acing Data Science Interview