Питання на співбесіді Data Analyst Італія 2026: SQL, Python та аналітика
Комплексний посібник з питань співбесіди для аналітиків даних на італійському ринку праці у 2026 році. SQL, Python pandas, Power BI та бізнес-сценарії з прикладами коду.

Питання на співбесіді data analyst в Італії у 2026 році зосереджені на володінні SQL, маніпуляції даними в Python та здатності перетворювати бізнес-проблеми в аналітичні рішення. При понад 600 відкритих позиціях у Мілані, Римі та Болоньї, компанії на кшталт Prometeia, Bending Spoons та ABB очікують від кандидатів як технічної глибини, так і бізнес-розуміння.
Італійські роботодавці надають пріоритет навичкам SQL та Power BI. Володіння Python з бібліотекою pandas виділяє кандидатів, особливо в технологічних компаніях Мілана. Зарплати початкового рівня коливаються від 28 000 до 39 000 EUR, а старші спеціалісти можуть розраховувати на 80 000+ EUR.
Питання SQL, що з'являються на кожній співбесіді Data Analyst
SQL залишається фундаментом співбесід для аналітиків даних в Італії. Менеджери з найму в компаніях на кшталт Italgas та Philip Morris тестують кандидатів на JOIN'и, агрегації та віконні функції. Ці питання оцінюють, чи може кандидат витягувати значущі інсайти з реляційних баз даних.
Питання 1: Поясніть різницю між INNER JOIN та LEFT JOIN з практичним прикладом
Очікувана відповідь: INNER JOIN повертає лише рядки, де є відповідності в обох таблицях. LEFT JOIN повертає всі рядки з лівої таблиці плюс відповідні рядки з правої таблиці, з NULL значеннями там, де немає відповідності.
-- orders_analysis.sql
-- Знайти всіх клієнтів та їх замовлення (включаючи клієнтів без замовлень)
SELECT
c.customer_id,
c.customer_name,
o.order_id,
o.order_total
FROM customers c
LEFT JOIN orders o ON c.customer_id = o.customer_id;
-- Результат: Клієнти без замовлень з'являються з NULL order_id та order_total
-- INNER JOIN повністю виключив би цих клієнтівІнтерв'юери шукають кандидатів, які розуміють, коли з'являються NULL значення, та можуть пояснити бізнес-контекст вибору одного типу з'єднання над іншим.
Питання 2: Напишіть запит для знаходження другої найвищої зарплати в таблиці
Це питання тестує знання підзапитів, DISTINCT та обмеження результатів. Існує кілька правильних підходів.
-- salary_analysis.sql
-- Підхід 1: Використання підзапиту з MAX
SELECT MAX(salary) AS second_highest
FROM employees
WHERE salary < (SELECT MAX(salary) FROM employees);
-- Підхід 2: Використання віконної функції DENSE_RANK
SELECT salary AS second_highest
FROM (
SELECT salary, DENSE_RANK() OVER (ORDER BY salary DESC) AS rank
FROM employees
) ranked
WHERE rank = 2;Підхід з віконною функцією коректно обробляє нічиї. Якщо три співробітники мають однакову найвищу зарплату, DENSE_RANK все одно поверне фактичне друге найвище значення. Використання ROW_NUMBER дало б інші результати, що демонструє розуміння віконних функцій SQL.
Питання 3: Як виявляти та обробляти дублікати записів?
Очікувана відповідь: Використовуйте GROUP BY з HAVING COUNT(*) > 1 для виявлення дублікатів. Підхід залежить від бізнес-правила: зберегти перший запис, найновіший, або об'єднати інформацію.
-- duplicate_detection.sql
-- Знайти дубльовані email-адреси
SELECT email, COUNT(*) AS occurrence_count
FROM users
GROUP BY email
HAVING COUNT(*) > 1;
-- Зберегти лише найраніший запис для кожного email
DELETE FROM users
WHERE id NOT IN (
SELECT MIN(id)
FROM users
GROUP BY email
);Питання 4: Поясніть CTE та коли використовувати їх замість підзапитів
Common Table Expressions покращують читабельність запитів та дозволяють рекурсивні запити. Італійські інтерв'юери часто просять кандидатів рефакторити складний підзапит у CTE.
-- revenue_analysis.sql
-- CTE для розрахунку щомісячного доходу
WITH monthly_revenue AS (
SELECT
DATE_TRUNC('month', order_date) AS month,
SUM(order_total) AS revenue
FROM orders
WHERE order_date >= '2025-01-01'
GROUP BY DATE_TRUNC('month', order_date)
),
revenue_growth AS (
SELECT
month,
revenue,
LAG(revenue) OVER (ORDER BY month) AS prev_month_revenue,
revenue - LAG(revenue) OVER (ORDER BY month) AS growth
FROM monthly_revenue
)
SELECT * FROM revenue_growth WHERE growth > 0;CTE можна багаторазово використовувати в тому ж запиті, на відміну від підзапитів, які потрібно повторювати. Це важливо для складних аналітичних запитів, типових для ролей data analyst.
Питання 5: Яка різниця між WHERE та HAVING?
Очікувана відповідь: WHERE фільтрує рядки перед агрегацією; HAVING фільтрує групи після агрегації. WHERE не може посилатися на агрегатні функції; HAVING може.
-- sales_filter.sql
-- WHERE фільтрує окремі рядки
SELECT region, SUM(sales) AS total_sales
FROM transactions
WHERE transaction_date >= '2026-01-01' -- Спочатку фільтруємо рядки
GROUP BY region
HAVING SUM(sales) > 100000; -- Потім фільтруємо агреговані групиГотовий до співбесід з Data Analytics?
Практикуйся з нашими інтерактивними симуляторами, flashcards та технічними тестами.
Питання Python та Pandas для ролей Data Analyst
Технологічні компанії в Мілані, особливо Bending Spoons та Amazon Italy, очікують володіння Python. Ці питання оцінюють навички маніпуляції даними з pandas та базової візуалізації.
Питання 6: Як обробляти пропущені значення в DataFrame pandas?
Очікувана відповідь: Підхід залежить від типу даних та бізнес-контексту. Варіанти включають видалення рядків, заповнення середнім/медіаною/модою, forward-filling для часових рядів або інтерполяцію.
# missing_values.py
import pandas as pd
import numpy as np
df = pd.DataFrame({
'date': pd.date_range('2026-01-01', periods=5),
'sales': [100, np.nan, 150, np.nan, 200],
'category': ['A', 'B', np.nan, 'A', 'B']
})
# Перевірити пропущені значення по стовпцях
print(df.isnull().sum())
# Заповнити числові медіаною (стійко до викидів)
df['sales'] = df['sales'].fillna(df['sales'].median())
# Заповнити категоріальні модою
df['category'] = df['category'].fillna(df['category'].mode()[0])
# Для часових рядів: forward fill
df['sales_ffill'] = df['sales'].ffill()Інтерв'юери оцінюють, чи розуміють кандидати, що сліпе видалення рядків втрачає інформацію, та що стратегія заповнення повинна відповідати аналітичній меті.
Питання 7: Поясніть різницю між merge, join та concat в pandas
Очікувана відповідь: merge() об'єднує DataFrame'и по стовпцях або індексах (з'єднання у стилі SQL). join() — це зручний метод для з'єднань на основі індексу. concat() складає DataFrame'и вертикально або горизонтально без зіставлення.
# dataframe_combining.py
import pandas as pd
orders = pd.DataFrame({'order_id': [1, 2], 'customer_id': [101, 102]})
customers = pd.DataFrame({'customer_id': [101, 103], 'name': ['Alice', 'Bob']})
# merge: з'єднання у стилі SQL по стовпцю
merged = pd.merge(orders, customers, on='customer_id', how='left')
# concat: складання DataFrame'ів
df1 = pd.DataFrame({'A': [1, 2]})
df2 = pd.DataFrame({'A': [3, 4]})
stacked = pd.concat([df1, df2], ignore_index=True)Питання 8: Як виконати операцію group-by з кількома агрегаціями?
# groupby_aggregation.py
import pandas as pd
df = pd.DataFrame({
'region': ['North', 'North', 'South', 'South'],
'product': ['A', 'B', 'A', 'B'],
'sales': [100, 150, 200, 50],
'quantity': [10, 15, 20, 5]
})
# Кілька агрегацій з іменованими стовпцями
result = df.groupby('region').agg(
total_sales=('sales', 'sum'),
avg_sales=('sales', 'mean'),
total_quantity=('quantity', 'sum'),
transaction_count=('sales', 'count')
).reset_index()Цей синтаксис (іменована агрегація) став стандартом у pandas 1.0+ та залишається актуальним у pandas 3.0. Інтерв'юери очікують, що кандидати використовуватимуть його замість старішого підходу на основі словників.
Питання 9: Напишіть код для розрахунку темпу зростання місяць до місяця
# mom_growth.py
import pandas as pd
df = pd.DataFrame({
'month': pd.date_range('2026-01-01', periods=6, freq='MS'),
'revenue': [10000, 12000, 11500, 14000, 15500, 16000]
})
# Розрахувати відсоткову зміну
df['mom_growth'] = df['revenue'].pct_change() * 100
# Альтернатива: ручний розрахунок для ясності
df['prev_revenue'] = df['revenue'].shift(1)
df['growth_manual'] = ((df['revenue'] - df['prev_revenue']) / df['prev_revenue']) * 100Питання 10: Як виконати pivot даних в pandas?
# pivot_example.py
import pandas as pd
df = pd.DataFrame({
'date': ['2026-01', '2026-01', '2026-02', '2026-02'],
'region': ['North', 'South', 'North', 'South'],
'sales': [100, 150, 120, 180]
})
# Pivot: рядки=дата, стовпці=регіон, значення=продажі
pivot_table = df.pivot(index='date', columns='region', values='sales')
# pivot_table для агрегації коли існують дублікати
agg_pivot = pd.pivot_table(df, values='sales', index='date',
columns='region', aggfunc='sum')Питання про бізнес-аналітику та вирішення проблем
Італійські компанії, особливо у фінансах (Prometeia) та виробництві (ABB), тестують аналітичне мислення поза чистим кодуванням. Ці питання оцінюють, як кандидати формулюють проблеми та комунікують результати.
Питання 11: Як би ви вимірювали успіх маркетингової кампанії?
Очікувана відповідь: Визначте KPI до початку кампанії. Типові метрики включають коефіцієнт конверсії, вартість залучення клієнта (CPA), повернення на рекламні витрати (ROAS) та довічну цінність клієнта (CLV). Порівняйте з контрольною групою або історичним базовим рівнем.
Сильна відповідь включає:
- Базові метрики перед запуском кампанії
- Вибір моделі атрибуції (first-touch, last-touch, multi-touch)
- Тестування статистичної значущості результатів
- Сегментацію за каналом, аудиторією або географією
Питання 12: Продакт-менеджер повідомляє, що дохід впав на 15% цього місяця. Як ви це дослідите?
Очікувана відповідь: Систематично декомпозуйте проблему:
- Перевірте дані: Перевірте проблеми з якістю даних, відсутні записи або затримки звітності
- Сегментний аналіз: Розбийте за продуктом, регіоном, сегментом клієнтів, каналом
- Ізолюйте змінну: Визначте, чи впав обсяг, змінилася ціна, чи змістився мікс
- Зовнішні фактори: Перевірте сезонність, дії конкурентів, економічні події
- Корелюйте з іншими метриками: Трафік на сайті, коефіцієнт конверсії, покинуті кошики
Питання 13: Поясніть A/B тестування та коли його не слід використовувати
Очікувана відповідь: A/B тестування порівнює два варіанти (контрольний vs. тестовий) для вимірювання причинного впливу. Воно вимагає випадкового розподілу, достатнього розміру вибірки та єдиної метрики інтересу.
A/B тестування не слід використовувати коли:
- Розмір вибірки недостатній для статистичної потужності
- Зміна впливає на всіх користувачів (інфраструктура, ціноутворення)
- Існують мережеві ефекти (соціальні функції де користувачі впливають один на одного)
- Етичні міркування перешкоджають затримці корисної зміни
Питання 14: Як би ви пояснили статистичну значущість нетехнічному стейкхолдеру?
Очікувана відповідь: Статистична значущість означає, що спостережувана різниця навряд чи сталася випадково. P-значення нижче 0.05 вказує на менш ніж 5% ймовірність того, що результат стався випадково.
Аналогія: підкидання монети 10 разів та отримання 7 орлів може бути випадковістю. Отримання 95 орлів зі 100 підкидань є статистично значущим, оскільки сама випадковість не може це пояснити.
Питання 15: Яка різниця між кореляцією та причинністю?
Очікувана відповідь: Кореляція вимірює, як дві змінні рухаються разом. Причинність означає, що одна змінна безпосередньо впливає на іншу. Продажі морозива та утоплення корелюють (обидва зростають влітку), але морозиво не спричиняє утоплення.
Встановлення причинності вимагає:
- Часової першості (причина передує наслідку)
- Кореляції
- Елімінації спотворюючих змінних (рандомізований контрольований експеримент)
Питання для оцінки технічних навичок
Ці питання тестують володіння конкретними інструментами, очікуваними на італійському ринку.
Питання 16: Порівняйте Power BI та Tableau для корпоративної аналітики
Італійські компанії, особливо у банківській сфері та комунальних послугах, інтенсивно використовують Power BI завдяки інтеграції з екосистемою Microsoft. Ключові відмінності:
| Аспект | Power BI | Tableau |
|---|---|---|
| Вартість | Нижча (включено в Office 365) | Вищі ліцензії |
| Крива навчання | Легша для користувачів Excel | Крутіша, потужніший |
| Підготовка даних | Power Query вбудований | Prep вимагає окремого інструменту |
| Візуалізація | Добра, покращується | Найкраща у класі |
| Корпоративне впровадження | Вища в Італії | Поширений у міжнародних фірмах |
Питання 17: Що таке DAX та наведіть приклад міри
Очікувана відповідь: DAX (Data Analysis Expressions) — це мова формул Power BI для обчислень. Міри обчислюють значення динамічно на основі контексту фільтра.
// Міра зростання рік до року в DAX
YoY Growth % =
VAR CurrentYearSales = SUM(Sales[Amount])
VAR PreviousYearSales = CALCULATE(
SUM(Sales[Amount]),
DATEADD(Calendar[Date], -1, YEAR)
)
RETURN
DIVIDE(CurrentYearSales - PreviousYearSales, PreviousYearSales, 0)Питання 18: Поясніть ETL та його важливість в аналітиці
Очікувана відповідь: ETL означає Extract, Transform, Load. Дані переміщуються з джерельних систем (ERP, CRM, веб-логи) через трансформацію (очищення, агрегація, об'єднання) до сховища даних для аналізу.
Сучасні альтернативи включають ELT (спочатку завантажуємо сирі дані, трансформуємо в сховищі) та інструменти на кшталт dbt, які відокремлюють логіку трансформації від оркестрації.
Питання 19: Які відмінності між OLTP та OLAP системами?
| Аспект | OLTP | OLAP |
|---|---|---|
| Призначення | Обробка транзакцій | Аналітичні запити |
| Модель даних | Нормалізована (3NF) | Денормалізована (star/snowflake) |
| Тип запитів | Прості, часті | Складні, агреговані |
| Обсяг даних на запит | Малий | Великий |
| Приклади | Введення замовлень, банкінг | Сховище даних, BI звіти |
Питання 20: Як оптимізувати повільний SQL запит?
Очікувана відповідь: Дотримуйтесь систематичного підходу:
- Аналізуйте план виконання: Ідентифікуйте повні сканування таблиць, відсутні індекси
- Додайте відповідні індекси: На стовпцях у WHERE, JOIN, ORDER BY
- Перепишіть неефективні патерни: Замініть корельовані підзапити на JOIN'и
- Обмежуйте дані рано: Фільтруйте перед об'єднанням великих таблиць
- Використовуйте підказки запитів обережно: Лише коли оптимізатор приймає погані рішення
-- query_optimization.sql
-- До: корельований підзапит (повільний)
SELECT * FROM orders o
WHERE o.total > (SELECT AVG(total) FROM orders WHERE customer_id = o.customer_id);
-- Після: віконна функція (швидша)
SELECT * FROM (
SELECT *, AVG(total) OVER (PARTITION BY customer_id) AS avg_total
FROM orders
) sub
WHERE total > avg_total;Готовий до співбесід з Data Analytics?
Практикуйся з нашими інтерактивними симуляторами, flashcards та технічними тестами.
Поведінкові та сценарні питання
Італійські інтерв'юери оцінюють культурну відповідність та комунікативні навички поряд з технічними здібностями.
Питання 21: Опишіть ситуацію, коли ваш аналіз суперечив очікуванням стейкхолдерів
Структура сильної відповіді:
- Ситуація: у що вірили стейкхолдери
- Аналіз: що насправді показали дані
- Комунікація: як дипломатично були представлені результати
- Результат: яке рішення було прийнято та його вплив
Ключові поведінкові патерни, які шукають інтерв'юери: інтелектуальна чесність, дипломатична комунікація та відстоювання висновків, заснованих на даних.
Питання 22: Як ви пріоритезуєте кілька термінових запитів на дані?
Очікувана відповідь:
- Оцініть бізнес-вплив кожного запиту
- Уточніть дедлайни та домовляйтесь де можливо
- Ідентифікуйте швидкі перемоги vs. глибокий аналіз
- Проактивно комунікуйте реалістичні часові рамки
- Ескалюйте обмеження ресурсів керівництву
Питання 23: Як ви забезпечуєте якість даних у своїх аналізах?
Очікувана відповідь:
- Валідуйте джерельні дані перед аналізом (перевірка null, діапазони, референційна цілісність)
- Документуйте припущення явно
- Крос-перевіряйте кілька джерел даних
- Імплементуйте автоматичні перевірки якості даних
- Вручну переглядайте викиди перед їх виключенням
Питання 24: Опишіть ваш підхід до вивчення нового інструменту або технології
Очікувана відповідь:
- Почніть з офіційної документації та туторіалів
- Створіть невеликий проект для застосування концепцій
- Приєднайтесь до спільнот (Reddit, Stack Overflow, локальні мітапи)
- Навчайте інших для закріплення розуміння
Питання специфічні для італійського ринку
Питання 25: Які регуляції впливають на аналітику даних в Італії?
Очікувана відповідь: GDPR є основним регулюванням. Ключові вимоги включають:
- Явна згода на обробку персональних даних
- Право на видалення (запити на видалення даних)
- Мінімізація даних (збирайте лише необхідні дані)
- Оцінки впливу на конфіденційність для високоризикової обробки
Специфічне для секторів: італійський банкінг (регуляції Bank of Italy), охорона здоров'я (італійські еквіваленти HIPAA), державний сектор (настанови CAD та AGID).
Питання 26: Як ви обробляєте PII в аналітичних датасетах?
Очікувана відповідь:
- Псевдонімізація: замініть ідентифікатори токенами
- Агрегація: звітуйте на рівні групи, не індивіда
- Маскування даних: приховуйте чутливі частини (email: a***@gmail.com)
- Контролі доступу: рольові дозволи для чутливих даних
- Політики зберігання: видаляйте дані коли вони більше не потрібні
Питання 27: Який досвід у вас є з хмарними платформами даних?
Італійські компанії все частіше використовують хмарні платформи. Поширені на ринку:
- Google BigQuery (Google Cloud)
- Amazon Redshift (AWS)
- Azure Synapse (інтеграція з екосистемою Microsoft)
- Snowflake (хмаро-незалежний)
Питання 28: Як ви комунікуєте аналітичні знахідки керівникам?
Очікувана відповідь:
- Починайте з рекомендації, не методології
- Використовуйте візуалізації, які керівники можуть інтерпретувати за секунди
- Кількісно оцінюйте бізнес-вплив (дохід, витрати, ризик)
- Передбачайте питання та готуйте запасні слайди
- Уникайте жаргону; перекладайте технічні терміни
Питання 29: Які метрики ви б відстежували для e-commerce бізнесу?
Очікувана відповідь:
- Залучення: джерела трафіку, вартість залучення
- Поведінка: показник відмов, сторінки за сесію, час на сайті
- Конверсія: коефіцієнт конверсії за етапом воронки, покинуті кошики
- Утримання: показник повторних покупок, довічна цінність клієнта
- Дохід: середня вартість замовлення, дохід на відвідувача
Питання 30: Як ви залишаєтесь в курсі трендів аналітики даних?
Очікувана відповідь:
- Слідкуйте за галузевими публікаціями: Towards Data Science, Analytics Vidhya
- Участь у змаганнях Kaggle
- Відвідуйте конференції: PyData, локальні мітапи data science в Мілані або Римі
- Читайте документацію для нових релізів інструментів
- Експериментуйте з новими технологіями в особистих проектах
Стратегія підготовки до співбесід Data Analyst в Італії 2026
- Майстерність SQL: Практикуйтесь на задачах баз даних LeetCode та StrataScratch. Італійські компанії інтенсивно тестують JOIN'и, віконні функції та CTE
- Володіння Python: Виконайте вправи pandas на Kaggle. Зосередьтесь на очищенні та агрегації даних
- Знайомство з інструментами: Навички Power BI високо цінуються в італійських підприємствах. Tableau поширений у міжнародних компаніях
- Бізнес-контекст: Підготуйте приклади з попередньої роботи, що демонструють перетворення бізнес-питань в аналітичні підходи
- Італійська мова: Хоча багато технологічних компаній працюють англійською, володіння італійською покращує можливості в традиційних галузях (банкінг, виробництво, комунальні послуги)
Починай практикувати!
Перевір свої знання з нашими симуляторами співбесід та технічними тестами.
Чи знайдеш ти помилку в Data Analytics?
Справжній фрагмент коду, прихована помилка, одна спроба на день. Щоб спробувати, акаунт не потрібен.

Автор:
Anthony Fillion-MailletЗасновник SharpSkill
Fullstack-розробник понад 10 років. Керує SharpSkill і відповідає за все, що тут публікується.
Оновлено 26 серпня 2026 р.
Поділитися
Пов'язані статті

Питання на співбесіді Data Analyst 2026: Повний посібник з SQL, Python та аналітики
Комплексний посібник з питань на співбесіді для аналітиків даних, що охоплює віконні функції SQL, операції Python pandas, статистичні концепції та бізнес-сценарії, які компанії задають у 2026 році.

Polars vs Pandas у 2026: Продуктивність, Синтаксис та Питання на Співбесідах для Аналітиків Даних
Комплексне порівняння Polars та Pandas у 2026 році. Бенчмарки продуктивності, відмінності синтаксису, лінива оцінка та найпоширеніші питання на співбесідах з аналізу даних у Python.

Google BigQuery vs Amazon Redshift у 2026: Порівняння та питання на співбесіду для аналітиків даних
Детальне порівняння BigQuery та Redshift, що охоплює архітектуру, моделі ціноутворення, продуктивність та питання на співбесіду для аналітиків даних у 2026 році.