この記事で分かること

  • SQLとは何か、リレーショナルデータベースとテーブルの基本概念
  • SELECT・WHERE・GROUP BY・JOINの基本構文と、売上データの設例による読み方
  • FP&A・経理・アセットマネジメント・フィンテックなど金融実務での活用場面
  • Excel・BIツールとの役割分担と、学習の順番

結論:SELECTが読めるだけで、扱えるデータの範囲が大きく広がる

SQL(Structured Query Language、エスキューエル)は、データベースに蓄積されたデータを取り出し、集計するための言語です。ISO/IEC 9075として国際標準化されており、PostgreSQL・MySQL・SQL Server・Oracleなど主要なデータベース製品は、いずれもこの標準に準拠した構文を持ちます。

金融・経理の実務者にとって重要なのは、エンジニアになる必要はないという点です。データベースの構築や運用は専門部署の仕事ですが、「すでにあるデータを取り出して集計する」だけなら、本記事で扱うSELECT・WHERE・GROUP BY・JOINの4つの構文でかなりの部分をカバーできます。システム部門への抽出依頼を待たずに自分でデータを確認できることは、月次決算・予実分析・投資分析のスピードに直結します。

データベースとテーブルの基本

JOINの概念:2つのテーブルを共通キーで結合するsales(売上明細・百万円)dept_idmonthamount102026-0140202026-0130102026-0250departments(部門マスタ)dept_iddept_name10東京営業部20大阪営業部30名古屋営業部共通キー dept_id で結合結合結果:部門名つきの売上明細(抜粋・百万円)dept_namemonthamount東京営業部2026-0140大阪営業部2026-0130
図:売上明細テーブル(sales)は部門IDのみを持ち、部門名は部門マスタ(departments)が管理する。共通キーdept_idで結合(JOIN)すると部門名つきの明細が得られる。数値は本文の設例と同一。

業務システムの多くは、データをリレーショナルデータベース(RDB:Relational Database)で管理しています。RDBでは、データは行(レコード)と列(カラム)からなるテーブルに格納されます。見た目はExcelのシートに似ていますが、次の点が異なります。

  • 1テーブル1目的:売上明細は売上明細テーブル、部門情報は部門マスタと、データの種類ごとにテーブルを分けて持つ
  • キーで関係を管理:各行を一意に識別する主キー(Primary Key)と、他のテーブルを参照する外部キー(Foreign Key)で、テーブル同士の関係を定義する
  • 型が厳密:列ごとに数値・文字列・日付などのデータ型が決まっており、同じ列に文字と数値が混在しない

上の図のように、売上明細(トランザクション)テーブルには部門IDだけを持たせ、部門名は部門マスタに1回だけ登録するのがRDBの典型的な設計です。分析の際は、後述するJOINで両者を結合して「部門名つきの売上明細」を作ります。

基本構文:SELECT・WHERE・GROUP BY

次の売上明細テーブルsalesを設例に、基本構文を確認します(金額単位:百万円)。

sale_iddept_idmonthamount(百万円)
1102026-0140
2102026-0120
3202026-0130
4102026-0250
5202026-0210
6302026-0225

まず、2026年1月の売上だけを部門別に集計してみます。

SELECT dept_id, SUM(amount) AS total_amount
FROM sales
WHERE month = '2026-01'
GROUP BY dept_id;

各句の意味は次のとおりです。

  • SELECT:取り出す列を指定する。SUM・COUNT・AVGなどの集計関数もここに書く
  • FROM:対象のテーブルを指定する
  • WHERE:行を絞り込む条件を指定する(ここでは2026年1月のみ)
  • GROUP BY:集計の単位(ここでは部門ID)を指定する

実行結果は次のとおりです。部門10は40+20=60百万円、部門20は30百万円。部門30は1月の売上がないため、結果に現れません。

dept_idtotal_amount(百万円)
1060
2030

WHERE句を外せば全期間の集計になり、部門10は40+20+50=110百万円、部門20は30+10=40百万円、部門30は25百万円(合計175百万円)となります。Excelのピボットテーブルで「行に部門、値に金額の合計」を置く操作と、GROUP BYは実質的に同じことをしています。

JOINで財務データを結合する

実務のデータベースでは、売上明細に部門「名」は入っておらず、部門IDしか持っていないのが普通です。部門名は部門マスタ(departments)が別に管理しています(冒頭の図のとおり、dept_id 10=東京営業部、20=大阪営業部、30=名古屋営業部)。この2つのテーブルを共通キーdept_idで結合し、部門名つきで全期間を集計するSQLが次です。

SELECT d.dept_name, SUM(s.amount) AS total_amount
FROM sales AS s
INNER JOIN departments AS d
  ON s.dept_id = d.dept_id
GROUP BY d.dept_name;

INNER JOIN … ON …が結合の指定で、「salesのdept_idとdepartmentsのdept_idが一致する行同士をつなぐ」という意味です。実行結果は次のとおりで、先ほどの部門ID別の全期間集計と一致します。

dept_nametotal_amount(百万円)
東京営業部110
大阪営業部40
名古屋営業部25

ExcelのVLOOKUP(XLOOKUP)でマスタから名称を引いてくる操作に相当しますが、SQLなら数百万行のデータでも同じ1文で処理できます。仕訳データと勘定科目マスタ、取引データと顧客マスタなど、財務データの分析はほぼ必ず「トランザクション×マスタ」の結合を伴うため、JOINまで読めると実務での応用範囲が一気に広がります。

金融実務での活用場面

金融・経理関連の職種でSQLが活きる代表的な場面を挙げます。

  • FP&A・経営企画:基幹システムやデータウェアハウスから売上・費用データを直接抽出し、予実分析やKPIモニタリングの前処理を自動化する。毎月同じ抽出を繰り返す業務ほど効果が大きい
  • 経理・監査対応:仕訳データ全件から特定条件(一定金額超、期末日付近の計上など)の取引を抽出する。監査法人によるデータ分析への対応にも役立つ
  • アセットマネジメント:銘柄・ポートフォリオ・時系列リターンなど大量データの抽出・加工。クオンツ運用に限らず、ミドルオフィスやリスク管理でも使用機会がある
  • フィンテック・事業会社:ユーザー行動や決済データの分析。非エンジニアのビジネス職でも、求人要件にSQLが記載される例が増えている

一方、投資銀行やPEファンドのフロント業務で日常的にSQLを書く場面は限定的です。ただし、デューデリジェンスで対象会社のPOSデータや販売明細など数十万行規模のデータを受領した場合、SQL(またはPython)で前処理できると分析の幅が大きく広がります。

ExcelやBIツールとの関係

SQL・Excel・BIツールは競合ではなく、役割分担の関係にあります。

  • SQL:大量データの抽出・結合・集計(前処理)。Excelのワークシートは最大1,048,576行だが、データベースはそれを大きく超える行数でも扱える
  • Excel:抽出後の最終加工、財務モデル、レポート作成。手作業での検証や感応度分析に強い
  • BIツール(Power BI・Tableauなど):定型レポートの自動更新と可視化。内部ではSQL相当のクエリが動いており、SQLを知っているとBIの習得も速い

学習の順番としては、Excel(ピボットテーブル・XLOOKUP)→SQL(SELECT文)→BIツールまたはPython、という流れが金融実務者には自然です。ツール全体の使い分けは財務データ分析の進め方で整理しています。

面接での答え方(30秒回答例)

Q:データ分析のスキルはありますか。SQLは使えますか。
「基本的なSELECT文の読み書きができます。WHEREでの絞り込み、GROUP BYでの集計、JOINでのマスタ結合を使って、たとえば売上明細を部門別・月次に集計するといった抽出が可能です。大量データの前処理はSQL、最終的な分析やレポートはExcelやBIツールと、目的に応じて使い分けることを意識しています。」

よくある質問(FAQ)

Q. SQLの習得にはどれくらい時間がかかりますか?
A. データ抽出に限れば、SELECT・WHERE・GROUP BY・JOINを一通り扱えるようになるまで数週間程度が一般的な目安です(個人差があります)。分析目的であれば、データベースの設計や運用まで学ぶ必要はありません。

Q. 経理・財務の仕事でもSQLは本当に必要ですか?
A. 必須ではありません。ただしFP&A、アセットマネジメント、フィンテック企業の経理・企画職では歓迎要件として記載される例が増えており、「Excelに読み込む前」のデータ処理を自分で完結できる人材は相対的に希少です。キャリアの選択肢を広げる投資と考えるとよいでしょう。

まとめ

SQLはデータベースからデータを取り出すための国際標準の言語であり、金融・経理実務者にとってはSELECT・WHERE・GROUP BY・JOINの4構文だけでも十分に価値があります。GROUP BYはピボットテーブル、JOINはVLOOKUPに対応すると理解すれば、Excelスキルの延長線上で無理なく習得できます。まずは自社・自分のデータ環境で「1本のSELECT文」を書いて動かすところから始めてみてください。

出典・参考(2026-07-19確認)

  • ISO — ISO/IEC 9075-1:2023 Information technology — Database languages SQL — Part 1: Framework(SQLの国際標準規格)
  • PostgreSQL Global Development Group — PostgreSQL Documentation, Chapter 7 Queries(SELECT・GROUP BY・JOINの構文仕様)
  • IPA(独立行政法人情報処理推進機構)— 基本情報技術者試験シラバス(データベース分野)
  • Microsoft — サポート「Excel の仕様と制限」(ワークシート最大行数 1,048,576行)

※本記事は教育目的の一般的な解説であり、法務・税務・投資助言ではありません。設例は理解のための仮設例です。