Топ-25 запитань на співбесіді з Data Analytics у 2026 році

Повний посібник з 25 найпоширеніших запитань на співбесідах для data analyst у 2026 році. SQL-запити, Python Pandas, статистика, Power BI та поведінкові запитання з модельними відповідями та кодом.

Топ-25 запитань на співбесіді з Data Analytics у 2026 році з прикладами коду SQL та Python

Питання на співбесіді з data analytics у 2026 році перевіряють значно більше, ніж знання синтаксису SQL або вміння будувати графіки. Команди наймачів оцінюють здатність кандидатів витягувати змістовну інформацію з неструктурованих даних, доносити висновки до нетехнічної аудиторії та прив'язувати кожну метрику до бізнес-результату. Цей посібник охоплює 25 запитань, які найчастіше зустрічаються на співбесідах для позицій data analyst початкового, середнього та старшого рівнів.

Як користуватися цим посібником

Кожне запитання містить стислу модельну відповідь та, де це доречно, готовий до виконання код SQL або Python. Варто спробувати написати запити самостійно перед тим, як читати розв'язок. Інтерв'юерів більше цікавить хід міркувань, ніж завчена відповідь.

Запитання з SQL для співбесід з data analyst

SQL залишається найбільш тестованою навичкою на співбесідах з data analytics. Кожна компанія з реляційною базою даних очікує, що аналітики писатимуть запити без сторонньої допомоги.

1. У чому різниця між WHERE та HAVING?

WHERE фільтрує рядки до агрегації. HAVING фільтрує групи після агрегації. Плутанина між ними -- одна з найпоширеніших помилок на технічних співбесідах.

sql
-- monthly_revenue.sql
SELECT
  DATE_TRUNC('month', order_date) AS month,
  SUM(amount)                     AS revenue
FROM orders
WHERE status = 'completed'          -- row-level filter
GROUP BY month
HAVING SUM(amount) > 10000;         -- group-level filter

WHERE зменшує набір даних до того, як рушій бази даних виконає GROUP BY. HAVING працює з уже агрегованим результатом. Використання WHERE скрізь, де це можливо, покращує продуктивність запиту, оскільки зменшує робочий набір на ранніх етапах плану виконання.

2. Поясніть віконні функції на практичному прикладі

Віконні функції обчислюють значення по набору рядків, пов'язаних з поточним рядком, без згортання результуючого набору. Вони є незамінними для ранжування, накопичувальних підсумків та порівнянь між періодами.

sql
-- user_ranking.sql
SELECT
  user_id,
  purchase_date,
  amount,
  ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY purchase_date) AS purchase_rank,
  SUM(amount)   OVER (PARTITION BY user_id ORDER BY purchase_date) AS running_total,
  LAG(amount)   OVER (PARTITION BY user_id ORDER BY purchase_date) AS prev_amount
FROM purchases;

ROW_NUMBER присвоює послідовний ранг для кожного користувача. SUM(...) OVER(...) обчислює накопичувальний підсумок без self-join. LAG витягує значення попереднього рядка для прямого порівняння. Інтерв'юери часто просять кандидатів розрахувати зростання місяць до місяця саме за цим шаблоном.

3. Як виявити та видалити дублікати записів

Виявлення дублікатів -- щоденне завдання для аналітиків, які працюють з журналами подій, експортами CRM або потоками даних від третіх сторін.

sql
-- deduplicate_events.sql
WITH ranked AS (
  SELECT *,
    ROW_NUMBER() OVER (
      PARTITION BY user_id, event_type, DATE_TRUNC('minute', created_at)
      ORDER BY created_at
    ) AS rn
  FROM events
)
SELECT * FROM ranked WHERE rn = 1;

CTE присвоює номер рядка в межах кожної групи дублікатів. Збереження лише rn = 1 повертає перше входження. Такий підхід зберігає оригінальні дані, водночас фільтруючи шум.

4. Напишіть запит для розрахунку утримання за тижневими когортами

Когортне утримання -- один з найбільш запитуваних аналізів у продуктових та growth-командах. SQL-шаблон має послідовну структуру, спільну для всіх баз даних.

sql
-- weekly_cohort_retention.sql
WITH cohorts AS (
  SELECT
    user_id,
    DATE_TRUNC('week', MIN(event_date)) AS cohort_week
  FROM user_events
  GROUP BY user_id
),
activity AS (
  SELECT
    c.cohort_week,
    DATE_TRUNC('week', e.event_date) AS active_week,
    COUNT(DISTINCT e.user_id)        AS active_users
  FROM user_events e
  JOIN cohorts c ON c.user_id = e.user_id
  GROUP BY c.cohort_week, DATE_TRUNC('week', e.event_date)
)
SELECT
  cohort_week,
  EXTRACT(WEEK FROM active_week - cohort_week) AS weeks_since_signup,
  active_users
FROM activity
ORDER BY cohort_week, weeks_since_signup;

Перший CTE визначає тиждень реєстрації кожного користувача. Другий CTE підраховує унікальних активних користувачів по когорті за кожен тиждень. Фінальний запит перетворює результат у матрицю утримання. Інтерв'юери очікують, що кандидат пояснить бізнес-інтерпретацію: різке падіння на першому тижні сигналізує про проблему з онбордингом, тоді як плоска крива починаючи з четвертого тижня свідчить про стабільну базу основних користувачів.

5. Що таке CTE і коли його використовувати замість підзапиту?

Common Table Expression (CTE) -- це іменований тимчасовий результуючий набір, визначений за допомогою WITH. CTE покращують читабельність та дозволяють створювати рекурсивні запити. Підзапити мають тенденцію породжувати глибоко вкладений SQL, який складно налагоджувати. CTE слід використовувати, коли одна й та сама похідна таблиця згадується кілька разів у запиті або коли логіка містить три чи більше етапи трансформації.

Запитання з Python для data analyst

Запитання з Python зосереджені на Pandas, робочих процесах очищення даних та здатності пояснити код у бізнес-термінах. Інтерв'юери хочуть бачити прагматичні рішення, а не академічні абстракції.

6. Як обробити пропущені значення у Pandas DataFrame

Пропущені дані спотворюють агрегації та вхідні дані моделей. Підхід залежить від типу стовпця та бізнес-контексту.

python
# handle_missing.py
import pandas as pd
import numpy as np

df = pd.read_csv('sales.csv')

# Inspect the extent of missing data
print(df.isnull().sum())
print(df.isnull().mean().round(3))  # percentage per column

# Strategy 1: drop rows where critical columns are null
df_clean = df.dropna(subset=['customer_id', 'amount'])

# Strategy 2: fill numeric columns with median (robust to outliers)
df['amount'] = df['amount'].fillna(df['amount'].median())

# Strategy 3: fill categorical columns with the mode
df['region'] = df['region'].fillna(df['region'].mode()[0])

Видалення рядків доречне, коли частка пропусків нижче 5% і стовпець є критичним. Імпутація медіаною безпечніша за середнє арифметичне для асиметричних розподілів. Імпутація модою підходить для категоріальних стовпців з домінуючим значенням. Документування стратегії імпутації є критичним для аудиторського сліду.

7. Merge, join та concatenate: коли використовувати кожен

Pandas пропонує кілька способів об'єднання DataFrame. Вибір залежить від того, чи операція виконується по рядках або стовпцях, та чи потрібне зіставлення за ключем.

python
# combine_dataframes.py
import pandas as pd

orders = pd.read_csv('orders.csv')
customers = pd.read_csv('customers.csv')

# Key-based merge (equivalent to SQL JOIN)
result = orders.merge(customers, on='customer_id', how='left')

# Stack rows from multiple sources
all_events = pd.concat([events_q1, events_q2], ignore_index=True)

# Add columns side-by-side (same row count required)
combined = pd.concat([features, labels], axis=1)

merge -- правильний вибір для з'єднань за ключем. concat з параметром axis=0 за замовчуванням об'єднує рядки. concat з axis=1 додає стовпці поруч. Використання how='left' зберігає всі рядки з лівого DataFrame, що відповідає SQL LEFT JOIN.

8. Групування, агрегація та трансформація даних продажів

Операції GroupBy -- це еквівалент SQL GROUP BY у Pandas. Цей шаблон з'являється практично в кожному домашньому завданні для data analyst.

python
# sales_analysis.py
import pandas as pd

df = pd.read_csv('transactions.csv', parse_dates=['date'])

# Monthly revenue by product category
monthly = (
    df.groupby([pd.Grouper(key='date', freq='M'), 'category'])
    .agg(revenue=('amount', 'sum'), orders=('order_id', 'nunique'))
    .reset_index()
)

# Add a column with each category's share of total monthly revenue
monthly['share'] = (
    monthly.groupby('date')['revenue']
    .transform(lambda x: x / x.sum())
    .round(4)
)

print(monthly.head(10))

agg з іменованою агрегацією зберігає читабельність результату. transform повертає обчислення на рівні групи до кожного рядка, що дозволяє уникнути додаткового кроку merge. Ця комбінація покриває більшість завдань ad-hoc звітності.

9. Виявлення та обробка викидів у наборі даних

Виявлення викидів визначає, чи є екстремальні значення помилками введення даних, сигналами шахрайства або справжніми граничними випадками.

python
# detect_outliers.py
import pandas as pd
import numpy as np

df = pd.read_csv('transactions.csv')

# IQR method
Q1 = df['amount'].quantile(0.25)
Q3 = df['amount'].quantile(0.75)
IQR = Q3 - Q1
lower = Q1 - 1.5 * IQR
upper = Q3 + 1.5 * IQR

outliers = df[(df['amount'] < lower) | (df['amount'] > upper)]
print(f'Outliers found: {len(outliers)} ({len(outliers)/len(df)*100:.1f}%)')

# Cap instead of remove (winsorization)
df['amount_capped'] = df['amount'].clip(lower=lower, upper=upper)

Метод IQR позначає значення, що виходять за межі 1,5 інтерквартильного розмаху. Обмеження (вінсоризація) зберігає кількість рядків, водночас обмежуючи вплив екстремальних значень. Видалення доречне лише тоді, коли викиди є очевидними помилками.

Готовий до співбесід з Data Analytics?

Практикуйся з нашими інтерактивними симуляторами, flashcards та технічними тестами.

Запитання зі статистики та ймовірності

Статистична грамотність відрізняє data-аналітиків, які просто повідомляють числа, від тих, хто правильно їх інтерпретує. Ці запитання перевіряють фундаментальне розуміння.

10. Поясніть p-value простою мовою

P-value -- це ймовірність спостерігати результат, щонайменше такий екстремальний, як виміряний, за умови, що нульова гіпотеза є істинною. P-value 0,03 не означає, що існує 3% ймовірність істинності нульової гіпотези. Це означає, що якби нульова гіпотеза була істинною, результати настільки екстремальні з'являлися б випадково лише у 3% випадків. Порогове значення (alpha) зазвичай встановлюється на рівні 0,05, але його вибір залежить від вартості хибно-позитивного результату у конкретному бізнес-контексті.

11. Коли використовувати медіану замість середнього арифметичного

Середнє арифметичне чутливе до екстремальних значень. Дані про доходи, суми транзакцій та тривалість сесій -- класичні приклади, де медіана дає більш репрезентативну центральну тенденцію. Набір даних з кількома великими корпоративними угодами може зсунути середнє значно вище того, що типовий клієнт реально витрачає. Подання медіани разом із середнім та стандартним відхиленням дає стейкхолдерам повну картину.

12. У чому різниця між кореляцією та причинно-наслідковим зв'язком?

Кореляція вимірює силу та напрямок лінійного зв'язку між двома змінними. Причинно-наслідковий зв'язок означає, що одна змінна безпосередньо впливає на іншу. Продажі морозива та кількість нещасних випадків на воді корелюють, оскільки обидва показники зростають влітку, а не тому, що один спричиняє інший. Встановлення причинно-наслідкового зв'язку вимагає контрольованого експерименту (A/B тесту) або суворого каузального аналізу, наприклад методу різниця різниць або інструментальних змінних.

13. Поясніть помилки I та II типу з бізнес-прикладом

Помилка I типу (хибно-позитивний результат) виникає, коли тест хибно відхиляє нульову гіпотезу. Приклад: висновок про те, що новий процес оформлення замовлення збільшує конверсію, коли насправді ефекту немає, що призводить до непотрібних змін у продукті. Помилка II типу (хибно-негативний результат) виникає, коли тест не виявляє реального ефекту. Приклад: збереження старого процесу оформлення, оскільки тест не мав достатнього розміру вибірки для виявлення справжнього зростання на 2%. Збільшення розміру вибірки зменшує помилки II типу. Зниження порогу alpha зменшує помилки I типу, але збільшує помилки II типу.

Запитання з Power BI та візуалізації даних

Запитання з візуалізації оцінюють, чи здатний кандидат обрати правильний тип графіка, створити підтримуваний дашборд та доносити історії на основі даних до нетехнічної аудиторії.

14. Що таке DAX і чим він відрізняється від SQL?

DAX (Data Analysis Expressions) -- це мова формул, що використовується у Power BI, Analysis Services та Excel Power Pivot. На відміну від SQL, який оперує наборами рядків, DAX працює у контексті фільтрів, що динамічно змінюється залежно від слайсерів, фільтрів та контексту рядка. Функція CALCULATE у DAX модифікує контекст фільтрів перед обчисленням виразу -- концепція, що не має прямого аналога в SQL.

15. Поясніть різницю між режимом Import та DirectQuery

Режим Import завантажує дані до рушія Power BI у пам'яті (VertiPaq), забезпечуючи швидке виконання запитів, але вимагаючи запланованого оновлення. DirectQuery надсилає запити до вихідної бази даних у реальному часі, гарантуючи актуальність даних, але залежачи від продуктивності джерела. У 2026 році Microsoft Fabric представив режим Direct Lake, який зчитує файли Parquet з OneLake без імпорту або запитів до SQL-ендпоінту, поєднуючи швидкість режиму Import з майже реальною актуальністю даних.

16. Коли використовувати стовпчикову діаграму, а коли лінійний графік

Стовпчикові діаграми порівнюють дискретні категорії (виручка за регіонами, кількість за продуктами). Лінійні графіки показують тренди за безперервними інтервалами (щоденні активні користувачі, щомісячний відтік). Використання лінійного графіка для категоріальних даних створює хибне враження тренду між незв'язаними категоріями, що вводить аудиторію в оману. Поширене додаткове запитання стосується секторних діаграм: їх слід обмежувати відображенням часток цілого з не більше ніж п'ятьма сегментами, оскільки людське око погано порівнює кути.

17. Як оптимізувати повільний звіт Power BI

Повільні звіти зазвичай спричинені надмірною кількістю стовпців у моделі даних, складними DAX-мірами, що обчислюються порядково, або візуалізаціями, що опитують мільйони рядків. Чек-ліст оптимізації включає: видалення невикористовуваних стовпців для зменшення розміру моделі, заміну ітераторних функцій (SUMX, FILTER) на їхні неітераторні аналоги, де це можливо, скорочення кількості візуалізацій на сторінці до менш ніж 15 та використання таблиць агрегацій для вимірів з високою кардинальністю. Вбудований Performance Analyzer у Power BI Desktop точно вказує, яка візуалізація або DAX-запит є вузьким місцем.

Поведінкові запитання та кейс-стаді

Технічні навички допомагають потрапити на співбесіду. Поведінкові запитання визначають, чи отримає кандидат пропозицію. Кожна відповідь має слідувати структурі STAR: Ситуація, Завдання, Дія, Результат.

18. Опишіть випадок, коли аналіз даних змінив бізнес-рішення

Сильні відповіді включають конкретну метрику, що змінилася, використаний метод аналізу та вплив у грошовому або відсотковому вираженні. Слабкі відповіді описують дашборд без прив'язки до результату. Приклад структури: "Аналіз відтоку для SaaS-продукту виявив, що користувачі, які не завершили онбординг протягом 48 годин, мали на 60% вищий відтік на 30-й день. Продуктова команда додала автоматичну серію електронних листів, яка активувалася через 24 години, що зменшило 30-денний відтік на 8 відсоткових пунктів."

19. Як працювати з суперечливими запитами на дані від стейкхолдерів

Це запитання перевіряє навички пріоритизації та комунікації. Рекомендований підхід: з'ясувати бізнес-запитання, що стоїть за кожним запитом, визначити спільні метрики, запропонувати єдиний дашборд, який задовольняє обидві потреби, та задокументувати компроміси прозоро. Відмова стейкхолдеру є прийнятною, якщо вона підкріплена міркуваннями з data governance або обмеженнями ресурсів, за умови пропозиції альтернативи.

20. Поясніть складний аналіз нетехнічній аудиторії

Інтерв'юери часто просять кандидатів пояснити концепцію регресії або когортного аналізу так, ніби вони розмовляють з менеджером з маркетингу. Найкращі відповіді використовують аналогії, уникають жаргону та прив'язують пояснення до бізнес-результату. "Когортний аналіз групує клієнтів за місяцем реєстрації та відстежує, скільки з них залишаються активними через три місяці. Графік показує, що січневі реєстрації утримувалися краще, ніж лютневі, що збігається зі змінами в онбордингу, запущеними наприкінці грудня."

Структура STAR для відповідей

Ситуація: встановіть контекст. Завдання: визначте ціль. Дія: опишіть конкретні кроки. Результат: кількісно оцініть вплив. Інтерв'юери знижують оцінку за нечіткі відповіді, в яких пропущено крок з результатом.

Запитання з очищення даних та ETL

Проблеми з якістю даних забирають значну частину робочого часу аналітика. Ці запитання перевіряють практичні навички роботи з реальними даними.

21. Як валідувати дані після виконання ETL-пайплайну

Перевірки валідації мають охоплювати кількість рядків (джерело vs. призначення), частку пропусків у критичних стовпцях, референційну цілісність між таблицями та зміни в розподілі значень (виявлення прихованих змін схеми). Автоматизовані перевірки, що виконуються після кожного запуску пайплайну, запобігають потраплянню неякісних даних на дашборди.

python
# etl_validation.py
import pandas as pd

def validate_pipeline(source_df: pd.DataFrame, target_df: pd.DataFrame) -> dict:
    checks = {}
    # Row count match
    checks['row_count_match'] = len(source_df) == len(target_df)
    # Null rate on critical columns
    for col in ['user_id', 'event_date', 'amount']:
        null_rate = target_df[col].isnull().mean()
        checks[f'{col}_null_rate'] = round(null_rate, 4)
    # Revenue reconciliation
    source_total = source_df['amount'].sum()
    target_total = target_df['amount'].sum()
    checks['revenue_diff_pct'] = round(
        abs(source_total - target_total) / source_total * 100, 2
    )
    return checks

results = validate_pipeline(source, target)
for check, value in results.items():
    print(f'{check}: {value}')

Ця функція повертає словник результатів валідації, який можна підключити до системи алертів. Різниця у виручці понад 0,01% має ініціювати розслідування.

22. У чому різниця між нормалізованими та денормалізованими даними?

Нормалізовані дані мінімізують надлишковість шляхом розподілу інформації по пов'язаних таблицях (3NF). Денормалізовані дані об'єднують таблиці у ширші, плоскіші структури, оптимізовані для аналітичних запитів з високим навантаженням на читання. OLTP-системи надають перевагу нормалізації заради цілісності даних. Сховища даних та BI-інструменти надають перевагу денормалізації (схема "зірка", схема "сніжинка") заради швидкості запитів. Розуміння цього компромісу є фундаментальним для проектування ефективних пайплайнів даних.

Запитання з просунутої аналітики

Для старших позицій необхідне знайомство з експериментами, прогнозуванням та міжфункціональною стратегією роботи з даними.

23. Як спроектувати A/B тест з нуля

A/B тест потребує п'яти компонентів: чітка гіпотеза ("Зміна кольору кнопки CTA з сірого на зелений збільшить показник кліків на 5%"), основна метрика (показник кліків), розрахунок розміру вибірки на основі очікуваного розміру ефекту та бажаної потужності (зазвичай 80%), випадкове розподілення користувачів між контрольною та експериментальною групами, та заздалегідь визначена тривалість тесту з урахуванням тижневої сезонності. Проведення тесту протягом щонайменше двох повних бізнес-циклів запобігає спотворенню результатів через вплив дня тижня.

Поширені помилки в A/B тестуванні

Перегляд результатів до досягнення тестом статистичної значущості завищує рівень хибно-позитивних результатів. Необхідно заздалегідь зафіксувати план аналізу, розмір вибірки та тривалість перед запуском тесту.

24. Поясніть воронковий аналіз та де найбільше значення мають втрати

Воронковий аналіз відстежує прогрес користувачів через послідовність кроків (наприклад, відвідування головної сторінки, перегляд продукту, додавання в кошик, оформлення замовлення, покупка). Найефективніша оптимізація спрямована на крок з найбільшим абсолютним відтоком, а не з найбільшим відсотковим. Падіння на 40% з 1000 користувачів на етапі перегляду продукту до 600 на етапі додавання в кошик становить 400 втрачених користувачів. Падіння на 50% зі 100 користувачів на етапі оформлення до 50 на етапі покупки становить лише 50 втрачених користувачів. Пріоритизація першого вузького місця забезпечує більше загальних конверсій.

25. Як побудувати KPI-дашборд, яким стейкхолдери справді користуватимуться

Дашборди зазнають невдачі, коли відображають занадто багато метрик без ієрархії. Ефективний KPI-дашборд слідує принципу перевернутої піраміди: одна-дві ключові метрики зверху (наприклад, щомісячний повторюваний дохід, індекс лояльності клієнтів), підтримуючі метрики посередині (конверсія, відтік, середній чек), та діагностичні деталі, доступні через drill-down. Обмеження верхнього рівня сімома або менше метриками зменшує когнітивне навантаження. Додавання автоматичних анотацій ("Виручка впала на 12% 5 березня через збій платіжного шлюзу") забезпечує контекст, якого не вистачає сирим числам.

Починай практикувати!

Перевір свої знання з нашими симуляторами співбесід та технічними тестами.

Висновки

  • Віконні функції SQL, CTE та когортні запити з'являються майже на кожній технічній співбесіді для data analyst. Написання їх з пам'яті -- базове очікування.
  • Володіння Python Pandas покриває 80% завдань ad-hoc аналізу. Зосередьтеся на merge, groupby, transform та обробці пропущених значень.
  • Статистичне мислення (p-value, кореляція vs. причинно-наслідковий зв'язок, проектування експериментів) відрізняє аналітиків, які повідомляють числа, від тих, хто правильно їх інтерпретує.
  • Запитання з Power BI та візуалізації перевіряють вибір типу графіка, основи DAX та оптимізацію продуктивності дашбордів.
  • Поведінкові відповіді, що слідують структурі STAR та включають кількісні результати, перевершують нечіткі наративи.
  • Практикуйте модулі співбесід з data analytics на SharpSkill, щоб відпрацювати ці концепції з обмеженням часу.
  • Для додаткової підготовки посібник зі співбесід з Data Science охоплює запитання з машинного навчання та статистичного моделювання, які перетинаються з позиціями старших data-аналітиків.

Починай практикувати!

Перевір свої знання з нашими симуляторами співбесід та технічними тестами.

Теги

#data-analytics
#interview
#sql
#python
#power-bi
#statistics

Поділитися

Пов'язані статті