8 Kainos SQL Interview Questions (Updated 2024)

Updated on

June 23, 2024

Data Scientists, Analysts, and Data Engineers at Kainos write SQL queries all the time as part of their job. They use SQL for analyzing customer insights and financial data for their healthcare and public sector digital services, and managing large-scale data migration within IT transformation projects. Because of this, Kainos frequently asks jobseekers SQL coding interview questions.

So, to help you practice, here’s 8 Kainos Group SQL interview questions – can you solve them?

8 Kainos Group SQL Interview Questions

Sure, here is a potential SQL interview question for the description you have provided:

SQL Question 1: Identify the Power Users by Purchase Frequency

Kainos, a fictitious online retailer, would like to identify their 'power users'. For Kainos, power users are defined as customers who made the most purchases within the past year. The goal is to write a SQL query to find these power users by analyzing their purchases in the customer database.

Example Input:
303745606/01/2022 00:00:00100150
402578906/03/2022 00:00:001002100
536212306/05/2022 00:00:00100150
108912306/08/2022 00:00:00100150
210845606/10/2022 00:00:001002100


For this problem, a simple way to identify power users is to count the number of purchases made by each customer_id within the past year. The SQL query could look something like this:

In this PostgreSQL query, we're looking at the 'purchases' table, where the 'purchase_date' was within the last year. We're grouping by 'customer_id', and ordering by the count in descending order. The output will be the top 10 customers by purchase frequency within the past year. In PostgreSQL, the NOW() function gets the present date and time, and INTERVAL '1 YEAR' subtracts a year from that date.

This query will give the list of the top 10 'power users', along with the number of purchases they have made in the past year. The customers with the highest purchase counts can be considered Kainos's most important users.

To practice a similar customer analytics SQL question where you can code right in the browser and have your SQL solution instantly executed, try this Walmart SQL Interview Question: Walmart Labs SQL Interview Question

SQL Question 2: Top Three Salaries

Given a table of Kainos employee salary data, write a SQL query to find the top 3 highest earning employees within each department.

Kainos Example Input:

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

Example Input:

1Data Analytics
2Data Science

Example Output:

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

Check your SQL query for this problem interactively on DataLemur:

Top 3 Department Salaries


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 code above is hard to understand, you can find a detailed solution here: Top 3 Department Salaries.

SQL Question 3: What's a database view?

Database views are created to provide customized, read-only versions of your data that you can query just like a regular table. So why even use one if they're just like a regular table?

Views are useful for creating a simplified version of your data for specific users, or for hiding sensitive data from certain users while still allowing them to access other data.

Kainos Group SQL Interview Questions

SQL Question 4: Compute monthly average rating for each product

Assume you are working as a data analyst at Kainos, a multinational digital solutions company. One of your roles is to monitor and evaluate customer reviews for the company's digital products on an ongoing basis.

The company receives numerous reviews across its range of products every day and stores this information within a dataset. The dataset reflects the structure and sample data outlined below:

Sample Input:
617112306/08/2022 00:00:00500014
780226506/10/2022 00:00:00698524
529336206/18/2022 00:00:00500013
635219207/26/2022 00:00:00698523
451798107/05/2022 00:00:00698522

The company wants to drill down on these reviews on a monthly basis. As such, you are tasked with writing a SQL query to compute the average star rating for each product on a monthly basis. You wish to determine the average for each in each month (denoted as ).

Your output should reflect the structure and sample data outlined below:

Example Output:


Here is a PostgreSQL query that solves the problem:

This query uses the function to get the month part from the . It then groups by the month and to compute the average for each product for each month. The function is used to calculate the average rating. Please note, the function returns double precision numbers, you may need to cast it to integer if needed. The final result is ordered by and for easier examination.

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

DataLemur SQL Questions

SQL Question 5: Can you describe the meaning of a constraint in SQL in layman's terms?

Constraints are used to specify the rules concerning data in the table. It can be applied for single or multiple fields in an SQL table during the creation of the table or after creating using the ALTER TABLE command. The constraints are:

Say you were storing sales analytyics data from Kainos's CRM inside a database. Here's some example constraints you could use:

  • PRIMARY KEY constraint: You might use a PRIMARY KEY constraint to ensure that each record in the database has a unique identifier. For example, you could use the "opportunity_id" field as the primary key in the "opportunities" table.

  • FOREIGN KEY constraint: You might use a FOREIGN KEY constraint to link the data in one table to the data in another table. For example, you could use a foreign key field in the "opportunities" table to reference the "account_id" field in the "accounts" table.

  • NOT NULL constraint: You might use a NOT NULL constraint to ensure that a field cannot contain a NULL value. For example, you could use a NOT NULL constraint on the "opportunity_name" field in the "opportunities" table to ensure that each opportunity has a name.

  • UNIQUE constraint: You might use a UNIQUE constraint to ensure that the data in a field is unique across the entire table. For example, you could use a UNIQUE constraint on the "email" field in the "contacts" table to ensure that each contact has a unique email address.

  • CHECK constraint: You might use a CHECK constraint to ensure that the data in a field meets certain conditions. For example, you could use a CHECK constraint to ensure that the "deal_probability" field in the "opportunities" table is a value between 0 and 100.

  • DEFAULT constraint: You might use a DEFAULT constraint to specify a default value for a field. For example, you could use a DEFAULT constraint on the "stage" field in the "opportunities" table to set the default value to "prospecting"

SQL Question 6: Analyze Purchase History by Joining Customer and Transactions Tables

You are given two tables, and . The table has information about all the customers like , , , , and . The table has details about all transactions done by customers like , , , , , and .

Write a SQL query to find out the total quantity of products each customer bought and the total amount they spent, sorted by in descending order.

The sample data of tables are as below:

Sample Input:
002Sophiasophia@example.comNew York11/08/2019
Sample Input:


The answer can be written in SQL like this:

In this answer, we join the table with the table on . Then, we group the results by and from the table. We then calculate the total quantity of products each customer bought () and the total amount each customer spent (). Finally, we order the result set by in descending order. This gives us the total quantity of products each customer bought and the total amount they spent, with the customers who bought the most items appearing first.

Because join questions come up so often during SQL interviews, take a stab at this Spotify JOIN SQL question: SQL join question from Spotify

SQL Question 7: What's a stored procedure, and why use one?

Stored procedures are a lot like functions in programming. They're used to encapsulate and organize business logic into one unit of code, and they can accept multiple input parameters and return multiple output values.

For example, if you were a Data Analyst at Kainos working on a HR analytics project, you might create a stored procedure to calculate the average salary for a given department:

To call this stored procedure and find the average salary for the Data Analytics department you'd write the following query:

SQL Question 8: Calculate Product Sale Analytics

Company Kainos sells multiple products. Your task is to write a SQL query that extracts the Product ID and calculates the following for each product:

  1. The total quantity sold.
  2. The average sold price, rounded to two decimal places.
  3. The value of the 4th power of the total quantity sold.
  4. The square root of the Product ID.

Use the ABS function to handle any negative values of total quantity sold.

Example Input:
Example Input:
Example Output:


This SQL query first performs a subquery to get the total quantity sold for each product from the "sales" table. It then joins this result with the "products" table to get the price and calculates the required values based on the question requirement.

To practice a very similar question try this interactive Amazon Highest-Grossing Items Question which is similar for calculating product metrics or this Wayfair Y-on-Y Growth Rate Question which is similar for <analyzing sales data.

Preparing For The Kainos SQL Interview

The key to acing a Kainos SQL interview is to practice, practice, and then practice some more! Besides solving the above Kainos SQL interview questions, you should also solve the 200+ DataLemur interview questions which come from companies like Microsoft, Google, and Facebook. DataLemur Question Bank

Each interview question has hints to guide you, fully explained answers along with a discussion board to see how others solved it and crucially, there's an interactive coding environment so you can easily right in the browser your SQL query answer and have it checked.

To prep for the Kainos 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 diving straight into solving questions – improve your SQL foundations with this interactive SQL tutorial.

DataLemur SQL Course

This tutorial covers SQL concepts such as window functions and SQL joins with practice exercises – both of which come up frequently during Kainos interviews.

Kainos Group Data Science Interview Tips

What Do Kainos Data Science Interviews Cover?

Besides SQL interview questions, the other types of problems to practice for the Kainos Data Science Interview include:

Kainos Data Scientist

How To Prepare for Kainos Data Science Interviews?

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

The book solves 201 data interview questions taken from FAANG & startups. It also has a refresher on Python, SQL & ML. And finally it's vouched for by the data community, which is how it's gotten to be an Amazon best-seller with over 1000+ 5-star reviews.

Ace the DS Interview