Book description
トップデータサイエンティストと統計のエキスパートによる、実践に役立つSQLのレシピ集。第1版を全面的にアップデートし、さらにデータサイエンティスト向けのレシピを追加、補強しています。巨大医療コングロマリットで長年データ分析とデータベースの特性評価を行っている著者たちの経験に基づき、SQLを使う上でよく遭遇する問題と、広く使われているMySQL、Oracle、PostgreSQL、SQL Server、Db2による解決策を提示。各データベースの持つ長所と短所、特性などもわかるため、データベースの導入や変更を検討する際の資料としての利用にも役立ちます。逆引きリファレンスとして常に手元に置いておきたい一冊です。
Table of contents
- 大扉
- 原書大扉
- クレジット
- 謝辞
- はじめに
- 1章 レコードの取得
- 2章 クエリ結果のソート
-
3章 複数テーブルの扱い
- レシピ3.1 ある行セットを別の行セットの上にスタックする
- レシピ3.2 関連する行を組み合わせる
- レシピ3.3 2つのテーブルに共通する行を取得する
- レシピ3.4 テーブルAからテーブルBには存在しない値を取得する
- レシピ3.5 テーブルAからテーブルB内に対応する行がない行を取得する
- レシピ3.6 他の結合を妨げずにクエリに結合を追加する
- レシピ3.7 2つのテーブルが同じデータを持つかどうかを判断する
- レシピ3.8 直積を特定して回避する
- レシピ3.9 集約の使用時に結合を実行する
- レシピ3.10 集約の使用時に外部結合を実行する
- レシピ3.11 複数テーブルから欠損データを返す
- レシピ3.12 演算や比較でNULLを使う
- まとめ
-
4章 挿入、更新、削除
- レシピ4.1 新しいレコードを挿入する
- レシピ4.2 デフォルト値を挿入する
- レシピ4.3 デフォルト値をNULLにオーバーライドする
- レシピ4.4 別のテーブルに行をコピーする
- レシピ4.5 テーブル定義をコピーする
- レシピ4.6 一度に複数のテーブルに挿入する
- レシピ4.7 特定の列への挿入をブロックする
- レシピ4.8 テーブル内のレコードを変更する
- レシピ4.9 対応する行が存在する場合に更新する
- レシピ4.10 別のテーブルの値で更新する
- レシピ4.11 レコードをマージする
- レシピ4.12 テーブルからすべてのレコードを削除する
- レシピ4.13 特定のレコードを削除する
- レシピ4.14 1つのレコードを削除する
- レシピ4.15 参照整合性違反を削除する
- レシピ4.16 重複レコードを削除する
- レシピ4.17 他のテーブルから参照されているレコードを削除する
- まとめ
- 5章 メタデータクエリ
-
6章 文字列
- レシピ6.1 文字列を反復処理する
- レシピ6.2 文字列リテラル内にクォートを埋め込む
- レシピ6.3 文字列内の文字の出現回数をカウントする
- レシピ6.4 文字列から不要な文字を取り除く
- レシピ6.5 数値データと文字データを分離する
- レシピ6.6 文字列が英数字かどうかを判別する
- レシピ6.7 名前からイニシャルを抽出する
- レシピ6.8 文字列の一部でソートする*2
- レシピ6.9 文字列内の数字でソートする
- レシピ6.10 テーブル行から区切りリストを作成する
- レシピ6.11 区切りデータから複数値を持つINリストへ変換する
- レシピ6.12 文字列をアルファベット順にする
- レシピ6.13 数値として扱える文字列を特定する
- レシピ6.14 n番目の区切り部分文字列を抽出する
- レシピ6.15 IPアドレスをパースする
- レシピ6.16 発音で文字列を比較する
- レシピ6.17 パターンにマッチしないテキストを探す
- まとめ
-
7章 数値
- レシピ7.1 平均値を計算する
- レシピ7.2 列の最大値と最小値を探す
- レシピ7.3 列の値を合計する
- レシピ7.4 テーブルの行数をカウントする
- レシピ7.5 列の値の数をカウントする
- レシピ7.6 累積和を求める
- レシピ7.7 累積積を求める
- レシピ7.8 値を平滑化する
- レシピ7.9 最頻値を計算する
- レシピ7.10 中央値を計算する
- レシピ7.11 総計に対する割合を求める
- レシピ7.12 NULLを許容する列を集約する
- レシピ7.13 最高値と最低値を除いた平均値を計算する
- レシピ7.14 英数字文字列を数字に変換する
- レシピ7.15 累積和の値を変更する
- レシピ7.16 中央絶対偏差を使って外れ値を探す
- レシピ7.17 ベンフォードの法則を使って異常を特定する
- まとめ
- 8章 日付の演算
-
9章 日付の操作
- レシピ9.1 ある年がうるう年かどうかを判定する
- レシピ9.2 1年の日数を計算する
- レシピ9.3 日付から単位時間を抽出する
- レシピ9.4 月の最初の日と最終日を求める
- レシピ9.5 1年の中の特定の曜日のすべての日付を求める
- レシピ9.6 ある月に特定の曜日が最初と最後に出現する日付を求める
- レシピ9.7 カレンダーを作成する
- レシピ9.8 年の四半期の開始日と終了日を表示する
- レシピ9.9 指定された四半期の開始日と終了日を求める
- レシピ9.10 欠損日付を埋める
- レシピ9.11 特定の単位時間を探す
- レシピ9.12 日付の特定の部分を使ってレコードを比較する
- レシピ9.13 重複する日付範囲を特定する
- まとめ
- 10章 範囲
- 11章 高度な検索
-
12章 レポート作成と形状変換
- レシピ12.1 結果セットを1行にピボットする
- レシピ12.2 結果セットを複数行にピボットする
- レシピ12.3 結果セットをアンピボットする
- レシピ12.4 結果セットを1列にアンピボットする
- レシピ12.5 結果セットから反復値を取り除く
- レシピ12.6 結果セットをピボットして行をまたいだ計算を容易にする
- レシピ12.7 固定長のデータグループを作成する
- レシピ12.8 所定の数のグループを作成する
- レシピ12.9 水平ヒストグラムを作成する
- レシピ12.10 垂直ヒストグラムを作成する
- レシピ12.11 非GROUP BY列を返す
- レシピ12.12 簡単な小計を計算する
- レシピ12.13 考えられるすべての表現の組み合わせに対する小計を計算する
- レシピ12.14 小計ではない行を識別する
- レシピ12.15 CASE式を使って行にフラグを付ける
- レシピ12.16 疎行列を作成する
- レシピ12.17 単位時間で行をグループ化する
- レシピ12.18 次元が異なるグループやパーティションに対して同時に集約を実行する
- レシピ12.19 値の移動範囲に対して集約を実行する
- レシピ12.20 小計を含む結果セットをピボットする
- まとめ
- 13章 階層クエリ
-
14章 その他
- レシピ14.1 SQL ServerのPIVOT演算子を使ってクロス集計レポートを作成する
- レシピ14.2 SQL ServerのUNPIVOT演算子を使ってクロス集計レポートをアンピボットする
- レシピ14.3 OracleのMODEL句を使って結果セットを転置する
- レシピ14.4 任意の場所から文字列要素を抽出する
- レシピ14.5 1年の日数を求める(Oracle用の別の解決策)
- レシピ14.6 英数字の混合文字列を探す
- レシピ14.7 Oracleを使って整数を2進数に変換する
- レシピ14.8 ランク付けされた結果セットをピボットする
- レシピ14.9 変換した2つの結果セットに列ヘッダを追加する
- レシピ14.10 Oracleでスカラサブクエリを複合サブクエリに変換する
- レシピ14.11 シリアル化されたデータを複数の行に分割する
- レシピ14.12 総計に対する割合を求める
- レシピ14.13 グループ内の値の存在を調べる
- まとめ
- 付録A ウィンドウ関数の再確認
- 付録B 共通テーブル式
- 著者・訳者紹介
- 奥付
Product information
- Title: SQLクックブック 第2版 ―データベースエキスパート、データサイエンティストのための実践レシピ集
- Author(s):
- Release date: February 2022
- Publisher(s): O'Reilly Japan, Inc.
- ISBN: 9784873119779
You might also like
book
マスタリングLinuxシェルスクリプト 第2版 ―Linuxコマンド、bashスクリプト、シェルプログラミング実践入門
Linuxシェルスクリプトの解説書。その中でも特にbashのシェルスクリプティングに焦点を当てています。シェルスクリプトの書き方、デバッグ方法、bashプログラミングの基本といったシェルスクリプティングの基礎から、sedやAWKなど各種ツールとの連携といった実践的な応用までを体系的に解説します。WebサーバーなどのLinuxシステムの管理を任されるようになった初級の管理者にも、もっと高度で実践的なテクニックを必要としている中級の管理者や開発者にも広く役に立つ内容です。
book
詳解 システム・パフォーマンス 第2版
本書は、エンタープライズとクラウド環境を対象としたオペレーティングシステムとアプリケーションのパフォーマンス分析と向上について解説します。 主にLinuxベースのオペレーティングシステムに含まれるツールとその使用例を通じてシステムパフォーマンスを引き出す手法を説明します。システム評価のためのベンチマーク、キャパシティプランニング、ボトルネックの解消について解説しスケーラビリティを制限する要因を発見、分析し、解決する方法を学びます。 第2版では、perf、Ftrace、BPFの解説が加わり、Linuxとクラウドコンピューティングについての説明が充実しました。 システムのパフォーマンスを向上させ、コストを削減し、レイテンシの外れ値を減らすための方法を学ぶ本書はエンジニア必携の一冊です。
book
仕事ではじめる機械学習 第2版
2018年の発行以来、多くの読者に支持された書籍を全面改訂! 不確実性の高い機械学習プロジェクトについて、「仕事で使う」という観点から整理するコンセプトはそのままに、初版の発行後に登場した概念や課題を取り上げます。「機械学習でいい感じにしてくれ」と突然上司に言われたとき、本書で学んだことが読者の力になるはずです。本書で得た知識は読者が「いま」困っている問題を解決する助けとなるでしょう。 第2版では、機械学習システムの開発と運用の統合する「ML Ops」、機械学習モデルを解釈し、その妥当性や根拠を明らかにする「機械学習モデルの検証」、ユーザーの行動を学習しながら予測を進める「バンディットアルゴリズム」、意思決定における予測システムの役割や意思決定のデザインを扱う「オンライン広告での機械学習」といった新章を追加しています。
book
プログラミング・ビットコイン ―ゼロからビットコインをプログラムする方法
本書は、ひとつのビットコインライブラリに必要なすべての要素を実際にコーディングすることで、ビットコイン技術の理解を深めることを狙いとした技術学習書です。ゼロから順を追ってビットコインライブラリを作成していくことで、その内部構造を紐解き、ビットコインの動作を学ぶことができます。本書で学び終える頃には、トランザクションの作成ができるようになるのはもちろん、必要なデータをピアから受け取り、ネットワーク経由でトランザクションを送信できるようになります。数学、パース、ネットワーク接続、ブロック検証をはじめ、それらを可能にするために必要なものすべてを網羅しています。