At Intuit, SQL is used to analyze TurboTax and Quickbooks customer data to find bottlenecks in the tax-preparation process . Unsurprisingly this is why Intuit almost always evaluates jobseekers on SQL query questions during interviews for Data Analytics, Data Science, and Data Engineering jobs.
So, if you want to ace the SQL Assessment, here’s 10 Intuit SQL interview questions to practice, which are similar to recently asked questions at Intuit – how many can you solve?
Intuit provides a range of tax filing products, including TurboTax and QuickBooks, available in various versions.
Write a query to determine the total number of tax filings made using TurboTax and QuickBooks. Each user can file taxes once a year using only one product.
If you find this question interesting, you may also want to try a similar question called Laptop vs Mobile Viewers!
Column Name | Type |
---|---|
filing_id | integer |
user_id | varchar |
filing_date | datetime |
product | varchar |
filing_id | user_id | filing_date | product |
---|---|---|---|
1 | 1 | 4/14/2019 | TurboTax Desktop 2019 |
2 | 1 | 4/15/2020 | TurboTax Deluxe |
3 | 1 | 4/15/2021 | TurboTax Online |
4 | 2 | 4/07/2020 | TurboTax Online |
5 | 2 | 4/10/2021 | TurboTax Online |
6 | 3 | 4/07/2020 | TurboTax Online |
7 | 3 | 4/15/2021 | TurboTax Online |
8 | 3 | 3/11/2022 | QuickBooks Desktop Pro |
9 | 4 | 4/15/2022 | QuickBooks Online |
turbotax_total | quickbooks_total |
---|---|
7 | 2 |
Using the PostgreSQL Query:
To solve this question on DataLemur's free interactive SQL code editor, attempt this Intuit SQL interview question:
As a part of the customer experience team in Intuit, you are tasked with analyzing customer reviews of different products. Given a "reviews" table with the following columns:
Write a SQL query that returns the average rating () of each product () for each month of submission (). The result should be ordered by the month in ascending order, then by product id in ascending order. The month of submission should be in the format of MM/YYYY.
review_id | user_id | submit_date | product_id | stars |
---|---|---|---|---|
6171 | 123 | 06/08/2022 | 50001 | 4 |
7802 | 265 | 06/10/2022 | 69852 | 4 |
5293 | 362 | 06/18/2022 | 50001 | 3 |
6352 | 192 | 07/26/2022 | 69852 | 3 |
4517 | 981 | 07/05/2022 | 69852 | 2 |
The SQL query uses the function to calculate the average star ratings for each product per month. The function is used to format the to 'MM/YYYY'. The result is grouped by month and product id, and ordered by the same.
To solve another question about calculating rates, solve this TikTok SQL question within DataLemur's online SQL code editor:
Intuit, a company known for its tax filing products like TurboTax and QuickBooks, offers multiple versions of these products.
Write a query that identifies the user IDs of individuals who have filed their taxes using any version of TurboTax for three or more consecutive years. Each user is allowed to file taxes once a year using a specific product. Display the output in the ascending order of user IDs.
Column Name | Type |
---|---|
filing_id | integer |
user_id | varchar |
filing_date | datetime |
product | varchar |
filing_id | user_id | filing_date | product |
---|---|---|---|
1 | 1 | 4/14/2019 | TurboTax Desktop 2019 |
2 | 1 | 4/15/2020 | TurboTax Deluxe |
3 | 1 | 4/15/2021 | TurboTax Online |
4 | 2 | 4/07/2020 | TurboTax Online |
5 | 2 | 4/10/2021 | TurboTax Online |
6 | 3 | 4/07/2020 | TurboTax Online |
7 | 3 | 4/15/2021 | TurboTax Online |
8 | 3 | 3/11/2022 | QuickBooks Desktop Pro |
9 | 4 | 4/15/2022 | QuickBooks Online |
user_id |
---|
1 |
Try solving this Intuit SQL question on DataLemur!
Imagine you are working for a gigantic corporation like Intuit which manages the accounts of millions of customers. One of the primary services Intuit provides is tax computation and tracking. Let's say the data structure is such that each customer can have multiple accounts, and each account can have multiple tax records for different years.
Design a schema for such a system, and then write a SQL query to find the total tax amount paid by each customer in the year 2020.
customer_id | full_name | |
---|---|---|
1 | John Doe | jhondoe@example.com |
2 | Jane Smith | janesmith@example.com |
3 | David Warner | davidwarner@example.com |
account_id | customer_id | account_type |
---|---|---|
10 | 1 | Savings |
11 | 1 | Investment |
20 | 2 | Savings |
21 | 2 | Investment |
30 | 3 | Savings |
tax_id | account_id | tax_year | tax_amount |
---|---|---|---|
1001 | 10 | 2020 | 5000 |
1002 | 10 | 2021 | 5500 |
1003 | 11 | 2020 | 2000 |
1004 | 11 | 2021 | 2200 |
2001 | 20 | 2020 | 6000 |
2002 | 20 | 2021 | 6600 |
3001 | 30 | 2020 | 7000 |
This SQL query joins the , , and tables using the foreign keys and and then groups the result by of the customer. After grouping, it calculates the sum of paid by each customer in the year 2020.
To practice a similar problem about calculating rates, try this SQL interview question from TikTok within DataLemur's online SQL code editor:
A transaction is a one or more SQL commands which are executed as a singular unit if the transaction -commits- (or no execution hapens if the transaction -aborts-).
For transactions, a DBMS is supposed to enforce the follwing ACID properties: Atomicity, Consistency, Isolation, & Durability.
Here's what each one means:
As you can see, it's pretty important for the multiple databases where Intuit store's it's data to be ACID-compliant!
As a Data Analyst at Intuit, you are asked to generate a report for the marketing team. They want to know all the customers who have purchased a specific product, 'Tax Software', in all years but have not made any purchases in the current year, 2022.
Below are the sample tables representing the customer records and products databases:
transaction_id | customer_id | product_id | purchase_date |
---|---|---|---|
1001 | 500 | 101 | 01/14/2019 |
1002 | 501 | 102 | 06/30/2018 |
1003 | 502 | 101 | 03/24/2020 |
1004 | 500 | 101 | 12/31/2021 |
1005 | 501 | 103 | 05/21/2019 |
1006 | 502 | 101 | 06/05/2022 |
product_id | product_name |
---|---|
101 | Tax Software |
102 | Accounting Software |
103 | Workflow Software |
Here is the PostgreSQL query to solve the problem:
This query works by initially filtering for transactions with the product_name 'Tax Software' and were purchased before 2022. From this subset, it 'subtracts' (using NOT IN) any customers who have any transactions in 2022 through a subquery. This results in a list of customers who have purchased the Tax Software in all years but not in 2022.
To solve a similar problem on DataLemur's free online SQL code editor, try this Facebook SQL Interview question:
A self-join is a type of join in which a table is joined to itself. To perform a self-join, you need to specify the table name twice in the FROM clause, and give each instance of the table a different alias. You can then join the two instances of the table using a JOIN clause, and use a WHERE clause to specify the relationship between the rows.
Self-joins are the go-to technique for any data analysis that involves pairs of the same thing, like identifying pairs of products that are frequently purchased together like in this Walmart SQL interview question.
For another example, say you were doing an HR analytics project and needed to analyze how much all Intuit employees in the same department interact with each other. Here's a self-join query you could use to retrieve all pairs of Intuit employees who work in the same department:
This query returns all pairs of Intuit employees who work in the same department, and excludes pairs where the employee's id is the same (since this would represent the same Intuit employee being paired with themselves).
As a data analyst at Intuit, you are tasked with finding the average monthly expense for each user. Intuit is a business and financial software company that develops and sells financial, accounting, and tax preparation software. One of its products, for instance, allows users to track their expenses.
You are provided with a database which tracks the made by each user. Each record in the table has an , a , a , and a .
expense_id | user_id | purchase_date | purchase_amount |
---|---|---|---|
1 | 100 | 2022-01-03 | 20 |
2 | 101 | 2022-01-05 | 35 |
3 | 100 | 2022-02-10 | 55 |
4 | 100 | 2022-02-15 | 25 |
5 | 102 | 2022-01-20 | 60 |
6 | 100 | 2022-03-01 | 75 |
7 | 101 | 2022-03-05 | 15 |
user_id | month | avg_expense |
---|---|---|
100 | 1 | 20.00 |
100 | 2 | 40.00 |
100 | 3 | 75.00 |
101 | 1 | 35.00 |
101 | 3 | 15.00 |
102 | 1 | 60.00 |
This SQL statement first uses the function to get the month of each purchase date. Then it groups the data by and , and applies the aggregate function on to calculate the average expense per month for each user. The ordering is done on and for better readability of the output.
To practice a similar SQL problem on DataLemur's free online SQL code editor, try this Meta SQL interview question:
Suppose you are working on the customer relations team at Intuit and you are assigned to send emails related to tax updates. You have been given the task to find customers whose email addresses contain the word "tax". For this exercise, making the assumption that customer emails are stored in lower-case, you need to write a SQL query to filter out customers with "tax" included in their email addresses.
customer_id | full_name | email_address | signup_date |
---|---|---|---|
125 | John Smith | johnsmith@gmail.com | 01/03/2021 |
257 | Anna Brown | annatax@gmail.com | 02/21/2022 |
562 | Mark Johnson | mark.j.tax@gmail.com | 11/18/2022 |
945 | Sarah Miller | sarahmiller@yahoo.com | 05/12/2022 |
112 | Ronald Davis | ronalddavis@outlook.com | 03/28/2021 |
This query uses the LIKE keyword in SQL to find all customers whose email addresses contain the string "tax". The '%' symbol is a wildcard in SQL which may represent zero, one, or multiple characters. So, the condition will match any email address that contains "tax" anywhere in the string, whether it's at the beginning, middle, or end. Running this query on the database will return all records where the customer's email address includes "tax".
To practice a related problem on DataLemur's free interactive SQL code editor, attempt this Meta SQL interview question:
In SQL, both and are used to rank rows within a result set. The key difference between the two functions is how deal with two or more rows having the same value in the ranked column (aka how the break ties).
RANK(): When there's a tie, leaves a gap in the ranking. For example, if three rows are tied for 2nd place, the RANK() function will assign a rank of 2 to the first of these rows, a rank of 3 to the second row, and a rank of 4 to the third row.
DENSE_RANK(): For ties, does not leave a gap in the ranking. Instead, it assigns the same rank to all tied rows, and then makes the next row 1 bigger. Confusing, I know, but here's an example to make it more clear: if three rows are tied for 3rd place, the function will assign a rank of 3 to all three rows, and then assign a rank of 4 to the next row.
Assuming that you've already got basic SQL skills, the next best tip we have to prepare for the Intuit SQL interview is to solve as many practice SQL interview questions as you can! Besides solving the above Intuit SQL interview questions, you should also solve the 200+ SQL questions from real Data Science & Analytics interviews which come from companies like Google, Microsoft and Silicon Valley startups.
Each SQL question has hints to guide you, full answers and crucially, there is an interactive coding environment so you can right in the browser run your SQL query answer and have it checked.
To prep for the Intuit SQL interview you can also be helpful to practice SQL problems from other tech companies like:
However, if your SQL query skills are weak, forget about diving straight into solving questions – strengthen your SQL foundations with this SQL tutorial for Data Scientists & Analysts.
This tutorial covers SQL concepts such as filtering groups with HAVING and Subquery vs. CTE – both of which show up frequently during SQL job interviews at Intuit.
For the Intuit Data Science Interview, beyond writing SQL queries, the other types of questions to practice:
The best way to prepare for Intuit Data Science interviews is by reading Ace the Data Science Interview. The book's got: