PR:この記事にはアフィリエイトリンクが含まれます。
月別の売上合計と一緒に、店舗ごとの順位や前週との差までSQLで出せたら、集計後の手作業を減らせます。直近7日間の平均も同じ結果表で見たい。そこで使うのがウィンドウ関数です。
GROUP BYとの違いや累計・順位の考え方を押さえ、時系列データを扱う際の注意点にも触れます。実務で役立つ5冊の内容も、テーマごとに紹介します。
早見表
各書籍の内容を、演習、クエリ改善、分析例、レシピ、理論の軸で整理しました。仕事で扱うSQLに近いテーマを確認できます。
| 書籍 | 主なテーマ | 特徴 | 参考価格 |
|---|---|---|---|
ミックの楽しいSQLパズル 解いて身につくSQLの考え方&書き方 | パズル、移動平均、累計、順位 | 解いて別解も比べられる | 2,750円 |
SQL緊急救命室 ――非効率なコードを改善せよ! | SQL改善、累計、フレーム句 | 複数DBMSで動作確認 | 3,520円 |
SQLではじめるデータ分析 | 時系列、コホート、前処理 | サンプルコードを試せる | 3,740円 |
SQLクックブック 第2版 | 集計、上位N件、順位付け | 課題別の実践レシピ | 4,400円 |
達人に学ぶSQL徹底指南書 第2版 | 関数の理解、行間比較 | SQLの仕組みから学ぶ | 2,750円 |
価格はいずれも税込の希望小売価格を目安にしています。実売価格は時期や販売店によって変わるため、購入時に表示額をご確認ください。
書籍ごとに、演習、コード改善、分析例、レシピ、概念の解説と扱う内容が異なります。ウィンドウ関数の役割を押さえておくと、それぞれの特徴もつかみやすくなりますよ。
関数の基本
GROUP BYは集計単位ごとに行をまとめます。ウィンドウ関数は元の行を残したまま、合計や順位を各行に付けられる仕組み。明細と集計値を並べて見たいときに便利です。
たとえば SUM(amount) OVER (PARTITION BY store_id ORDER BY sales_date) は、店舗ごとの累計を作る形です。同じ日付の行が複数ある場合は、並び順と集計範囲も確認しましょう。ROWSのフレーム句を指定すれば、計算対象を明確にできます。
PARTITION BYは計算の区切り、ORDER BYは行の順序、フレーム句は計算に含める範囲を指定します。それぞれの役割を分けて考えるのがコツ。累計や移動平均ではフレーム句も確認してください。
集計関数とウィンドウ関数を組み合わせ、月別売上をまとめてから順位を付けることも可能です。まず結果の1行が何を表すかを決め、段階を追ってクエリを組み立てると見直しやすくなります。
集計の注意点
クエリを書く前に、結果の1行が何を指すかをはっきりさせます。売上明細なのか、日別なのか、店舗別なのか。粒度が曖昧だと、合計の二重計上や誤った順位につながります。
明細と商品マスタを結合してから売上を合計するとき、結合先に同じ商品IDが複数あると金額まで膨らみます。結合先の一意性を確かめ、必要なら先に対象を集約してから結びつけましょう。
COUNT(*)は行数を数え、COUNT(column)は列がNULLの行を除いて数えます。平均や割合でもNULLの扱いが結果を左右します。式に加え、欠損値の意味まで確認してください。
ミックのSQLパズル
『ミックの楽しいSQLパズル 解いて身につくSQLの考え方&書き方』は、自分で問題を解きながらSQLの発想を鍛えたい人におすすめです。2026年2月20日発売のA5判384ページ。参考価格は2,750円(税込)で、実売価格は時期や店によって変わります。
移動平均、累計、パーセンタイル、四分位、中央値などをパズル形式で練習できます。自分のクエリと別解を比べられるため、同じ課題への異なる考え方も学べます。
実行計画を使った解説や卒業試験も収録。分析クエリを自力で書く力を伸ばしたい人は、この一冊で問題に取り組んでみてください。
SQL緊急救命室
『SQL緊急救命室 ――非効率なコードを改善せよ!』は、クエリの改善方法を学びたい人におすすめです。2024年9月14日発売、A5判432ページ。参考価格は3,520円(税込)で、販売価格は時期や店によって変わります。
累計、PARTITION BY、ORDER BYを扱い、フレーム句の使い方も解説しています。クエリの動作と理由を確認しながら、書き方を見直すときに役立つ内容です。
Oracle Database 21c XE、SQL Server 2022、Db2 11.5、PostgreSQL 16.3、MySQL Community Server 9.0で動作確認されています。演習も収録されており、複数のDBMSを扱う実務者におすすめです。
SQLではじめる分析
『SQLではじめるデータ分析』は、SQLを使った分析例を広く学べる本です。2023年1月26日発行、352ページ。参考価格は3,740円(税込)で、実売価格は時期や販売店によって異なります。
データ前処理、時系列解析、コホート分析、テキスト分析、異常検知を扱います。SQLの文法とデータ分析の進め方をまとめて学びたい人におすすめです。
移動窓、疎なデータでの移動窓、累積値の計算例があり、サンプルコードはGitHubから入手できます。コードを試しながら売上や利用履歴を分析したい人には、実践例が参考になります。
SQLクックブック
『SQLクックブック 第2版』は、課題に対応するSQLのレシピを参照したい人におすすめです。2022年2月17日発行のB5変判560ページ。参考価格は4,400円(税込)で、実売価格は時期や店によって変わります。
累積和、中央値、総計に対する割合、移動範囲の集約など、集計のレシピがそろっています。上位N件の取得や結果のランク付けも掲載され、分析クエリの具体例を探すときに便利です。
MySQL、Oracle、PostgreSQL、SQL Server、Db2の書き方を比べられます。付録Aではウィンドウ関数を再確認できるため、複数DBMSの現場で参照する本が必要な人におすすめです。
達人のSQL指南書
『達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ』は、SQLの考え方から理解を深めたい人におすすめです。2018年10月11日発売、A5判368ページ。参考価格は2,750円(税込)です。
必ずわかるウィンドウ関数、ウィンドウ関数で行間比較を行なう、の各項目を収録。GROUP BYとPARTITION BYの関係も解説しており、集約と分析関数の違いを理屈から学べます。
標準SQLを基に、Oracle、SQL Server、Db2、PostgreSQL、MySQLなどの例を扱います。関数を丸暗記せず理解したい人や、行同士の比較を深めたい人に適した一冊です。
結論
移動平均や順位を自分で解いて身につけるなら『ミックの楽しいSQLパズル』、フレーム句やクエリ改善を学ぶなら『SQL緊急救命室』がおすすめです。分析手法の実例を広く見たい人には『SQLではじめるデータ分析』が合います。
複数DBMSのレシピを仕事で参照するなら『SQLクックブック』、関数の仕組みから理解するなら『達人に学ぶSQL徹底指南書』が候補です。仕事で解きたい課題に合う一冊を選んでください。
実データを扱うときは、粒度や同順位、欠損日、NULLの扱いを確かめましょう。ウィンドウ関数を使えば、分析結果を筋道立てて説明しやすくなります。実務で頼れるSQLの道具です。
Amazon の PC をスコア化してみた
Amazonにある8〜14インチの小型WindowsタブレットやノートPCを、スペック別にスコア化して比較・ランキング。






