SQL試験、DS中途採用の約半数で導入されていると体感しています。落ちる方の典型と、合格ラインの感覚を共有させてください。
出題範囲は3階層に分かれています。
①基礎層: SELECT、JOIN(INNER/LEFT)、GROUP BY、HAVING、サブクエリ。ここで詰まると即不合格です。
②中級層: ウィンドウ関数(ROW_NUMBER、LAG、PARTITION BY)、CTE(WITH句)、複雑な集計の組み合わせ。中級層が解けると通過率が一気に上がります。
③応用層: パフォーマンスを意識したクエリ、実行計画の読解、データ整合性チェック。応用層まで触れると、年収提示も変わります。
私の体感では、通過する方は中級層を30分以内、応用層を1問は解いている水準です。基礎だけで「SQL書けます」と言うと、ここで詰みます。
落ちる典型は3つあります。
①ウィンドウ関数を知らない方。これは現代DSの必須スキルです。
②動くSQLを書けても、効率を意識しない方。「正しいけど遅い」クエリは、業務では使えません。
③インデックスや実行計画を聞かれた時に答えられない方。シニアレベルでの足切り基準です。
対策はLeetCodeのMedium 20問+SQLZooの応用編で十分。週末2時間×6週間で基礎から中級までは到達できます。応用層は実務経験が必要ですが、書籍「SQLパフォーマンス詳解」を読むだけでも面接での会話の質が変わります。
試験前日に範囲を確認させてもらうのは普通の依頼です。遠慮せず聞いてくださいね。