Питання на співбесіду Data Analyst в Італії 2026: SQL, Python та кейс-стаді

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

Питання на співбесіду Data Analyst в Італії 2026

Співбесіди на посаду Data Analyst в Італії мають структуру, що відрізняється від інших європейських ринків. Італійські компанії — від міланських фінтех-стартапів до римських корпорацій — особливу увагу приділяють володінню SQL, навичкам маніпулювання даними в Python та бізнес-мисленню при розв'язанні кейсів. Цей посібник охоплює реальні питання, з якими кандидати стикаються у 2026 році.

Процес найму в Італії

Більшість італійських компаній проводять 3-4 раунди співбесід: попередня розмова з HR, технічний тест SQL/Python (часто з обмеженням часу), презентація кейс-стаді та фінальна співбесіда на культурну відповідність. Технічний тест зазвичай триває 60-90 хвилин і використовує платформи Codility або HackerRank.

Питання SQL, які задають італійські компанії у 2026 році

SQL залишається основою кожної співбесіди на посаду Data Analyst в Італії. Такі компанії, як Intesa Sanpaolo, Enel та UniCredit, використовують стандартизовані SQL-тести перед першою технічною розмовою. Наведені нижче питання взяті з реальних співбесід у Мілані, Римі та Турині.

Віконні функції для ранжування та накопичувальних сум

Віконні функції з'являються у 80% італійських співбесід на посаду Data Analyst. Це питання тестує обчислення накопичувального доходу:

sql
-- Calculate running total of daily revenue by product category
SELECT 
    order_date,
    category,
    daily_revenue,
    SUM(daily_revenue) OVER (
        PARTITION BY category 
        ORDER BY order_date
        ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
    ) AS cumulative_revenue
FROM (
    SELECT 
        DATE(order_timestamp) AS order_date,
        p.category,
        SUM(oi.quantity * oi.unit_price) AS daily_revenue
    FROM order_items oi
    JOIN products p ON oi.product_id = p.id
    GROUP BY DATE(order_timestamp), p.category
) daily_sales
ORDER BY category, order_date;

Клауза ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW тут вказана явно. Хоча PostgreSQL та MySQL 8+ за замовчуванням застосовують цю поведінку з ORDER BY, інтерв'юери очікують, що кандидати продемонструють обізнаність щодо меж фрейму. Пропуск цього в BigQuery може давати різні результати при дублікатах значень.

CTE для багатоетапного аналізу

Common Table Expressions (CTE) тестують здатність кандидата розбивати складні проблеми на частини. Італійські інтерв'юери надають перевагу цьому патерну, оскільки він відображає спосіб документування роботи аналітиками:

sql
-- Find customers who increased spending by 20%+ quarter over quarter
WITH quarterly_spending AS (
    SELECT 
        customer_id,
        DATE_TRUNC('quarter', order_date) AS quarter,
        SUM(total_amount) AS quarter_total
    FROM orders
    WHERE order_date >= '2025-01-01'
    GROUP BY customer_id, DATE_TRUNC('quarter', order_date)
),
spending_growth AS (
    SELECT 
        customer_id,
        quarter,
        quarter_total,
        LAG(quarter_total) OVER (
            PARTITION BY customer_id ORDER BY quarter
        ) AS prev_quarter_total
    FROM quarterly_spending
)
SELECT 
    customer_id,
    quarter,
    quarter_total,
    prev_quarter_total,
    ROUND(
        (quarter_total - prev_quarter_total) / prev_quarter_total * 100, 
        2
    ) AS growth_pct
FROM spending_growth
WHERE prev_quarter_total IS NOT NULL
  AND (quarter_total - prev_quarter_total) / prev_quarter_total >= 0.20
ORDER BY growth_pct DESC;

Підхід CTE відокремлює етап агрегації від етапу віконної функції. Це запобігає плутанині щодо моменту обчислення LAG — поширеного джерела помилок, коли аналітики намагаються поєднати ці операції в одному запиті.

Більше SQL-патернів для співбесід можна знайти в модулі SQL Window Functions.

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

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

Питання Python Pandas на італійських співбесідах

Python випередив Excel як очікуваний інструмент для маніпулювання даними на посадах Data Analyst в Італії. Компанії тестують саме pandas, оскільки це показує, як кандидати справляються з реальними завданнями очищення даних.

Очищення даних та конвертація типів

Це питання з'являється на співбесідах в італійських компаніях електронної комерції та тестує практичну підготовку даних:

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

def clean_sales_data(df: pd.DataFrame) -> pd.DataFrame:
    """Clean raw sales data from Italian ERP export."""
    # Create copy to avoid modifying original
    cleaned = df.copy()
    
    # Italian number format: 1.234,56 -> 1234.56
    if cleaned['revenue'].dtype == 'object':
        cleaned['revenue'] = (
            cleaned['revenue']
            .str.replace('.', '', regex=False)  # Remove thousand separator
            .str.replace(',', '.', regex=False)  # Decimal comma to point
            .astype(float)
        )
    
    # Parse Italian date format: 15/09/2026
    cleaned['order_date'] = pd.to_datetime(
        cleaned['order_date'], 
        format='%d/%m/%Y',
        errors='coerce'
    )
    
    # Handle missing values based on column type
    cleaned['customer_segment'] = cleaned['customer_segment'].fillna('Unknown')
    cleaned['revenue'] = cleaned['revenue'].fillna(0)
    
    # Remove duplicates keeping first occurrence
    cleaned = cleaned.drop_duplicates(
        subset=['order_id'], 
        keep='first'
    )
    
    return cleaned

Італійський формат чисел (крапка як роздільник тисяч, кома як десятковий роздільник) застає зненацька кандидатів, які практикувались лише на даних у форматі США. Параметр errors='coerce' конвертує непарсовані дати в NaT замість виклику винятку — це очікувана поведінка у продакшн-пайплайнах.

GroupBy з множинними агрегаціями

Це питання тестує розуміння патернів агрегації в pandas:

python
# customer_metrics.py
import pandas as pd

def calculate_customer_metrics(orders_df: pd.DataFrame) -> pd.DataFrame:
    """Calculate customer-level metrics for RFM analysis."""
    reference_date = orders_df['order_date'].max()
    
    metrics = orders_df.groupby('customer_id').agg(
        recency=('order_date', lambda x: (reference_date - x.max()).days),
        frequency=('order_id', 'nunique'),
        monetary=('revenue', 'sum'),
        avg_order_value=('revenue', 'mean'),
        first_order=('order_date', 'min'),
        last_order=('order_date', 'max')
    ).reset_index()
    
    # Calculate customer lifetime in days
    metrics['customer_lifetime'] = (
        metrics['last_order'] - metrics['first_order']
    ).dt.days
    
    return metrics

Синтаксис іменованих агрегацій (recency=('order_date', lambda x: ...)) з'явився в pandas 0.25 і залишається переважним підходом у 2026 році. Італійські інтерв'юери особливо перевіряють, чи використовують кандидати цей синтаксис замість застарілого словникового agg({'column': 'function'}).

Модуль Python Pandas Basics містить додаткові патерни для підготовки до співбесіди.

Питання кейс-стаді від італійських компаній

Італійські співбесіди включають раунд кейс-стаді у 70% позицій Data Analyst. Кандидат отримує набір даних (зазвичай анонімізовані дані компанії) і повинен представити висновки протягом 24-48 годин.

Аналіз конверсії e-commerce

Типовий кейс-стаді від італійської модної e-commerce компанії:

"Проаналізуйте наданий набір даних з 50 000 сесій користувачів. Визначте, чому мобільна конверсія впала на 15% у серпні порівняно з липнем. Представте три практичні рекомендації."

Очікувані результати:

  1. Розбивка воронки за типом пристрою: Порівняння десктопу та мобільного на кожному етапі (посадка, перегляд товару, додавання до кошика, оформлення, покупка)
  2. Сегментний аналіз: Перевірка, чи падіння стосується всіх джерел трафіку чи конкретних каналів (платні соціальні мережі часто гірше конвертують на мобільних)
  3. Технічне дослідження: Пошук збільшення часу завантаження сторінки, рівня помилок або змін UI, що співпали з падінням
python
# conversion_funnel.py
import pandas as pd

def analyze_funnel(sessions_df: pd.DataFrame) -> pd.DataFrame:
    """Calculate conversion funnel by device and month."""
    sessions_df['month'] = sessions_df['session_start'].dt.to_period('M')
    
    funnel = sessions_df.groupby(['month', 'device_type']).agg(
        sessions=('session_id', 'nunique'),
        product_views=('viewed_product', 'sum'),
        add_to_cart=('added_to_cart', 'sum'),
        checkouts=('started_checkout', 'sum'),
        purchases=('completed_purchase', 'sum')
    ).reset_index()
    
    # Calculate conversion rates
    funnel['view_rate'] = funnel['product_views'] / funnel['sessions']
    funnel['cart_rate'] = funnel['add_to_cart'] / funnel['product_views']
    funnel['checkout_rate'] = funnel['checkouts'] / funnel['add_to_cart']
    funnel['purchase_rate'] = funnel['purchases'] / funnel['checkouts']
    funnel['overall_conversion'] = funnel['purchases'] / funnel['sessions']
    
    return funnel

Італійські інтерв'юери оцінюють презентацію так само високо, як і сам аналіз. Структурування висновків як "проблема, доказ, рекомендація" з конкретними цифрами перемагає довгу дослідницьку розповідь.

Оцінка ризиків у фінансових послугах

Банки, такі як Intesa Sanpaolo та UniCredit, використовують кейс-стаді, зосереджені на метриках ризику:

"Використовуючи наданий набір кредитних даних, побудуйте простий скорингову модель для прогнозування ризику дефолту. Поясніть обґрунтування вибору ознак."

Це тестує розуміння:

  • Feature engineering: Співвідношення боргу до доходу, агрегація платіжної історії, використання кредиту
  • Робота з незбалансованими даними: Рівень дефолту зазвичай становить 2-5%, що вимагає стратифікованої вибірки або технік оверсемплінгу
  • Регуляторна обізнаність: Італійські банківські регуляції (керівництва Banca d'Italia) вимагають пояснювальних моделей, тому підходи чорного ящика отримують нижчі оцінки

Що італійські інтерв'юери шукають окрім технічних навичок

Технічні навички приводять кандидатів до фінального раунду. Культурна відповідність визначає оффер. Італійські компанії оцінюють:

Стиль комунікації: Італійці цінують побудову відносин. Поспіх через small talk, щоб "перейти до справи", сприймається як грубість. Потрібно приділяти час під час представлення.

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

Доменна цікавість: Задавання обізнаних запитань про індустрію компанії демонструє підготовку. Аналітик на співбесіді в Luxottica повинен розуміти динаміку ринку окулярів. У Ferrari важливе знання метрик преміальної автомобільної галузі.

Очікування щодо зарплат та ринковий контекст 2026

Зарплати Data Analyst в Італії на 2026 рік, за даними Glassdoor та LinkedIn:

Рівень досвідуМілан (річна брутто)РимRemote-First
Junior (0-2 роки)€28 000-35 000€25 000-32 000€30 000-38 000
Mid (3-5 років)€40 000-52 000€35 000-45 000€42 000-55 000
Senior (5+ років)€55 000-70 000€48 000-60 000€58 000-75 000

Мілан платить на 15-20% більше за інші італійські міста через концентрацію фінансових послуг та технологічних компаній. Remote-first ролі в міжнародних компаніях часто перевищують місцеві ставки, оскільки вони конкурують за таланти з усієї Європи.

Італійський contratto a tempo indeterminato (безстроковий контракт) залишається переважним типом зайнятості. Строкові контракти (tempo determinato) переходять у безстрокові після 24 місяців згідно з чинним трудовим законодавством.

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

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

Підготовка до італійських співбесід Data Analyst: Ключові висновки

  • SQL віконні функції та CTE з'являються у 80% технічних тестів. Слід практикувати конкретні патерни, показані вище, а не загальні туторіали
  • Питання Python pandas зосереджені на очищенні даних з італійськими форматами (десяткова кома, європейські дати) та агрегаціях groupby з іменованим синтаксисом
  • Кейс-стаді вимагають структурованих презентацій із кількісними рекомендаціями. "Збільшити конверсію на X%" перемагає "покращити користувацький досвід"
  • Технічний тест зазвичай триває 60-90 хвилин на Codility або HackerRank. Слід практикувати кодування на час, щоб уникнути браку часу
  • Культурна відповідність має більше значення на італійських співбесідах, ніж у процесах США чи Великобританії. Потрібно підготуватися до питань про побудову відносин
  • Зарплати зросли на 8-12% у 2026 році через дефіцит талантів. Кандидати з навичками SQL і Python отримують преміальні оффери

Для додаткової підготовки до співбесіди посібник Data Analytics Interview Questions охоплює ширші теми, а стаття SQL Window Functions надає глибшу практику SQL.

Щоденний виклик

Чи знайдеш ти помилку в Data Analytics?

Справжній фрагмент коду, прихована помилка, одна спроба на день. Щоб спробувати, акаунт не потрібен.

Anthony Fillion-Maillet

Автор:

Anthony Fillion-Maillet

Засновник SharpSkill

Fullstack-розробник понад 10 років. Керує SharpSkill і відповідає за все, що тут публікується.

Оновлено 16 вересня 2026 р.

Теги

#data-analyst
#sql
#python
#italy
#interview

Поділитися

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