2026年イタリアのデータアナリスト面接対策:SQL、Python、ケーススタディの実践ガイド

2026年イタリア企業のデータアナリスト面接で問われるSQL・Python・ケーススタディの質問と対策を解説。ミラノ・ローマの採用プロセスと給与相場も紹介。

Data Analyst Interview Questions Italy 2026

イタリアのデータアナリスト面接は、他のヨーロッパ市場とは異なる独自の構造を持っている。ミラノのフィンテックスタートアップからローマの大手企業まで、イタリア企業はSQL能力、Pythonによるデータ操作、ビジネスケースの論理的思考を重視している。本記事では、2026年に実際に出題される面接質問と対策を詳しく解説する。

イタリアの採用プロセス

イタリア企業の多くは3〜4回の面接を実施する:人事スクリーニング、技術テスト(SQL/Python、多くの場合時間制限あり)、ケーススタディのプレゼンテーション、そして最終的なカルチャーフィット面接。技術テストは通常60〜90分で、CodilityやHackerRankなどのプラットフォームが使用される。

2026年イタリア企業で出題されるSQL面接問題

SQLはイタリアのデータアナリスト面接において最も重要な基盤である。Intesa Sanpaolo、Enel、UniCreditなどの大手企業は、最初の技術面接の前に標準化されたSQLアセスメントを実施する。以下の問題は、ミラノ、ローマ、トリノで実際に出題されたものである。

ウィンドウ関数によるランキングと累計計算

ウィンドウ関数はイタリアのデータアナリスト面接の80%に登場する。この問題は累計売上の計算能力をテストするものである:

sql
-- 商品カテゴリ別の日次売上累計を計算
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を使用した多段階分析

共通テーブル式(CTE)は、複雑な問題を分解する能力をテストする。イタリアの面接官はこのパターンを好む。なぜなら、アナリストが作業を文書化する方法を反映しているからである:

sql
-- 四半期ごとに支出が20%以上増加した顧客を特定
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ウィンドウ関数モジュールを参照のこと。

Data Analyticsの面接対策はできていますか?

インタラクティブなシミュレーター、flashcards、技術テストで練習しましょう。

イタリア面接で問われるPython Pandas問題

Pythonはイタリアのデータアナリスト職において、データ操作の標準ツールとしてExcelを上回っている。企業がpandasを特にテストするのは、候補者が実際のデータクリーニングタスクをどのように処理するかが明らかになるからである。

データクリーニングと型変換

この問題はイタリアのEコマース企業の面接で出題され、実践的なデータ準備能力をテストする:

python
import pandas as pd
import numpy as np

def clean_sales_data(df: pd.DataFrame) -> pd.DataFrame:
    """イタリアのERPエクスポートから生の売上データをクリーニング"""
    cleaned = df.copy()
    
    # イタリアの数値フォーマット: 1.234,56 -> 1234.56
    if cleaned['revenue'].dtype == 'object':
        cleaned['revenue'] = (
            cleaned['revenue']
            .str.replace('.', '', regex=False)
            .str.replace(',', '.', regex=False)
            .astype(float)
        )
    
    # イタリアの日付フォーマットを解析: 15/09/2026
    cleaned['order_date'] = pd.to_datetime(
        cleaned['order_date'], 
        format='%d/%m/%Y',
        errors='coerce'
    )
    
    cleaned['customer_segment'] = cleaned['customer_segment'].fillna('Unknown')
    cleaned['revenue'] = cleaned['revenue'].fillna(0)
    
    cleaned = cleaned.drop_duplicates(
        subset=['order_id'], 
        keep='first'
    )
    
    return cleaned

イタリアの数値フォーマット(ピリオドが千の区切り、カンマが小数点)は、米国フォーマットのデータのみで練習した候補者を困惑させる。errors='coerce'パラメータは、解析できない日付を例外を発生させる代わりにNaTに変換する。これは本番パイプラインで期待される動作である。

GroupByと複数の集計

この問題はpandasの集計パターンの理解をテストする:

python
import pandas as pd

def calculate_customer_metrics(orders_df: pd.DataFrame) -> pd.DataFrame:
    """RFM分析用の顧客レベルメトリクスを計算"""
    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()
    
    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基礎モジュールでは、面接準備のための追加パターンを紹介している。

イタリア企業のケーススタディ問題

イタリアの面接では、データアナリスト職の70%でケーススタディラウンドが含まれる。候補者はデータセット(通常は匿名化された企業データ)を受け取り、24〜48時間以内に調査結果を発表する必要がある。

Eコマースのコンバージョン分析

イタリアのファッションEコマース企業からの典型的なケーススタディ:

「50,000ユーザーセッションのデータセットを分析してください。8月のモバイルコンバージョンが7月と比較して15%低下した理由を特定し、3つの実行可能な推奨事項を提示してください。」

期待される成果物:

  1. デバイスタイプ別のファネル分析:各段階(ランディング、商品閲覧、カート追加、チェックアウト、購入)でデスクトップとモバイルを比較
  2. セグメント分析:低下がすべてのトラフィックソースに影響しているか、特定のチャネルに限られているかを確認
  3. 技術的調査:ページ読み込み時間の増加、エラー率、または低下と同時期に発生したUI変更を調査
python
import pandas as pd

def analyze_funnel(sessions_df: pd.DataFrame) -> pd.DataFrame:
    """デバイスと月別のコンバージョンファネルを計算"""
    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()
    
    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などの銀行は、リスク指標に焦点を当てたケーススタディを使用する:

「提供されたローンデータセットを使用して、デフォルトリスクを予測するシンプルなスコアリングモデルを構築してください。特徴選択の根拠を説明してください。」

これは以下の理解をテストする:

  • 特徴エンジニアリング:負債比率、支払い履歴の集計、クレジット利用率
  • 不均衡データの処理:デフォルト率は通常2〜5%であり、層化サンプリングまたはオーバーサンプリング技術が必要
  • 規制への認識:イタリアの銀行規制(イタリア銀行ガイドライン)は説明可能なモデルを要求するため、ブラックボックスアプローチは評価が低くなる

イタリアの面接官が技術スキル以外に重視する点

技術スキルは候補者を最終ラウンドに進める。オファーを決定するのはカルチャーフィットである。イタリア企業が評価する点:

コミュニケーションスタイル:イタリア人は関係構築を重視する。スモールトークを急いで「本題に入る」のは失礼と見なされる。自己紹介の際は時間をかけること。

協調性の指標:「ステークホルダーと意見が合わなかった経験を教えてください」などの質問は、候補者がイタリアの職場階層をナビゲートできるかどうかをテストする。

業界への好奇心:会社の業界について情報に基づいた質問をすることは、準備ができていることを示す。Luxotticaで面接を受けるアナリストはアイウェア市場のダイナミクスを理解している必要がある。Ferrariでは、高級自動車市場の指標に関する知識が重要である。

2026年の給与水準と市場動向

GlassdoorとLinkedInのデータに基づく2026年イタリアのデータアナリスト給与:

経験レベルミラノ(年間総額)ローマリモートファースト
ジュニア(0〜2年)€28,000-35,000€25,000-32,000€30,000-38,000
ミドル(3〜5年)€40,000-52,000€35,000-45,000€42,000-55,000
シニア(5年以上)€55,000-70,000€48,000-60,000€58,000-75,000

ミラノは金融サービスとテック企業が集中しているため、他のイタリアの都市よりも15〜20%高い給与を支払う。国際企業のリモートファースト職は、汎ヨーロッパの人材と競争するため、現地相場を上回ることが多い。

イタリアのcontratto a tempo indeterminato(無期雇用契約)が依然として好まれる雇用形態である。有期契約(tempo determinato)は現行の労働法の下で24ヶ月後に無期契約に転換される。

今すぐ練習を始めましょう!

面接シミュレーターと技術テストで知識をテストしましょう。

イタリアのデータアナリスト面接対策:重要ポイント

  • SQLウィンドウ関数とCTEは技術スクリーニングの80%に登場する。一般的なチュートリアルではなく、上記で示した具体的なパターンを練習すること
  • Python pandas問題はイタリアのフォーマット(カンマ小数点、ヨーロッパ式日付)でのデータクリーニングと、名前付き構文を使用したgroupby集計に焦点を当てている
  • ケーススタディでは、数値化された推奨事項を含む構造化されたプレゼンテーションが必要。「ユーザーエクスペリエンスを向上させる」よりも「コンバージョンをX%向上させる」が効果的
  • 技術テストは通常CodilityまたはHackerRankで60〜90分。時間切れを避けるために時間制限のあるコーディングを練習すること
  • カルチャーフィットはイタリアの面接では米国や英国のプロセスよりも重要。関係構築に関する質問に備えること
  • 人材不足により2026年の給与は8〜12%上昇した。SQLとPythonの両方のスキルを持つ候補者はプレミアムオファーを獲得できる

追加の面接準備については、データアナリティクス面接質問ガイドでより幅広いトピックをカバーしており、SQLウィンドウ関数の記事ではより深いSQL練習を提供している。

今日のチャレンジ

Data Analytics のバグを見つけられますか

実際のコード、隠れたバグ、1日1回。アカウントなしで試せます。

Anthony Fillion-Maillet

執筆

Anthony Fillion-Maillet

SharpSkill 創業者

10 年以上フルスタック開発に携わっています。SharpSkill を運営し、ここで公開される内容に責任を負っています。

2026年9月16日 更新

共有

関連記事