Verisk Intern Data Scientist Interview Experience — 60-Minute OA with One SQL, One Algorithm and Three Multiple-Choice Questions

Verisk·Data Scientist·Nov 2026
Online AssessmentInterneasy

I just finished the Verisk Tech Intern OA, so I'm posting it here for everyone to reference.

The OA isn't big: 5 questions in total (1 SQL + 1 algorithm + 3 multiple choice), with a 60-minute limit. The platform's question types are pretty standard, mostly you just need to not be careless about details. Here is a reconstruction of each question and how to solve it:

Q1: [SQL] Filter companies by average salary

Description:
You are given three tables: EMPLOYEE, COMPANY and SALARY. Query the names of all companies whose employees' average salary is strictly greater than 40,000, and output them in the format COMPANY.NAME.

Pitfalls:

  1. Read the threshold carefully, it is 40000 (don't be like me and fat-finger it, I typed one zero too few and wrote 4000...).
  2. Use HAVING to filter the aggregate. To make sure it passes the judge, I suggest adding ORDER BY c.ID ASC so the output order is stable.

Reference code:

SELECT c.NAME
FROM COMPANY c
JOIN SALARY s ON c.ID = s.COMPANY_ID
GROUP BY c.ID, c.NAME
HAVING AVG(s.SALARY) > 40000
ORDER BY c.ID ASC;

Q2: [Multiple choice] Which MySQL expression is a syntax error

Question: Select the expression that causes a MySQL error.

Option A: SELECT 1, 2, 3

Option B: SELECT 1 2 3

Option C: SELECT '1 2 3'

Option D: None of the above, all expressions are correct

Correct answer: SELECT 1 2 3

Explanation:
A is valid, it outputs multiple columns separated by commas. C just outputs an ordinary string constant. In B the numbers are not separated by commas or operators, so the MySQL parser can't recognize an alias or an expression and throws ERROR 1064 (42000) directly.

Q3: [Algorithm] Meandering Array (rearrange into a wave / alternating order)

Description: Rearrange the array into a "zigzag / wave" order: 1st = the maximum, 2nd = the minimum, 3rd = the second largest, 4th = the second smallest, and so on, alternating. Constraint: 2 <= n <= 10^4.

Approach: A classic two-pointer greedy arrangement. First sort the original array in ascending order. The left pointer left = 0 points to the current minimum and the right pointer right = n - 1 points to the current maximum. In the loop, alternately take right and left, and move the pointers inward.

Reference code (Python 3):

def meanderingArray(unsorted):
    sorted_arr = sorted(unsorted)
    result = []
    left = 0
    right = len(sorted_arr) - 1
    while left <= right:
        if left <= right:
            result.append(sorted_arr[right])
            right -= 1
        if left <= right:
            result.append(sorted_arr[left])
            left += 1
    return result

(If you write it in C, call the standard library qsort first, then malloc the result array and fill it with the two pointers.)

Q4: [Multiple choice] What determines the evaluation order of a prefix expression

Question: Which of the following factors determine the order of evaluation of a prefix expression?

  • Precedence of operators
  • Associativity of operator
  • Both precedence and associativity
  • Neither precedence nor associativity

Correct answer: Neither precedence nor associativity

Explanation: A prefix expression (Polish notation), like a postfix expression, is essentially a completely unambiguous linear expansion of a tree. The evaluation order is determined entirely by the relative position of the operators in the string, and unlike infix expressions you don't need operator precedence and associativity to resolve ambiguity.

Q5: [Multiple choice] Pivot index after a quicksort partition

Question: Given the array [76, 97, 25, 115, 83, 51, 18, 36], do a quicksort partition using the first element as the pivot. If indexing starts at 1 (1-based), what is the index of the pivot after the partition is done?

Options: 1 / 3 / 4 / 5

Correct answer: 5

Explanation:
The pivot is the first element, 76. The elements strictly smaller than the pivot (< 76) are 25, 51, 18, 36, which is 4 of them. The elements strictly greater than the pivot (> 76) are 97, 115, 83, which is 3 of them. By how partition works, everything smaller than the pivot gets moved in front of it and everything larger goes behind it. There are 4 numbers in front, so the pivot's final position is 4 + 1 = 5 (1-indexed).

Hope this helps everyone! Good luck with your fall recruiting / summer camp applications, and I hope you all get the offers you want!

Published

Curated and edited by PracHub

Practice the questions from this interview

Discussion

Sign in to join the discussion. The author is notified of every comment.

Loading comments…

Interview at a glance

Company
Verisk
Role
Data Scientist
Level
Intern
Rounds
Online Assessment
Difficulty
easy
Interview date
Nov 2026
Questions from this interview
5 questions

Related interview experiences

Explore more interview rounds, questions, and outcomes.

Browse interview experiences