18 ポイント 投稿者 GN⁺ 2024-02-07 | 1件のコメント | WhatsAppで共有

SQL for the Weary

  • 対象読者: 細胞生物学の修士号を持つレイチェルは、研究病院で細胞分析の仕事をしながらデータサイエンティストを目指している。
  • 必要な前提知識: 基本的なUnixコマンドと表形式データの分析能力。
  • 学習成果: データベースとデータベース管理者の違いを説明し、SQLを書き、テーブル定義とデータ操作を行い、結合の種類を説明し、隣接行の処理のためにウィンドウ関数を使い、トランザクションとトリガーを理解し、SQLを使ってJSONデータを操作し、Pythonを通じてデータベースとやり取りできるようになる。

セットアップ

  • 最新リリースのダウンロード: SQLiteデータベースのサンプル、SQLクエリ、Pythonスクリプトなどを含むファイルを一時ディレクトリに展開する。

背景概念

  • データベース: 保存および検索が可能なデータの集合。
  • データベース管理システム(DBMS): 特定種類のデータベースを管理するプログラム。
  • SQLite: データベースを単一ファイルとして保存し、PostgreSQLはより高い性能のために情報を複数ファイルに分散して保存する。
  • リレーショナルデータベース管理システム(RDBMS): データをテーブルに保存し、SQLを使ってクエリする。
  • NoSQLデータベース: MongoDBのようにテーブルを使わないデータベースも存在する。

データベース接続

  • データベース接続: 実際のクエリではないが、他の作業を行う前に必要な手順。

管理コマンド

  • SQLite管理コマンド: 標準SQLの一部ではなく、PostgreSQLの特殊コマンドは\で始まる。
  • 出力形式: .headers on.mode markdownを使って結果を読みやすく出力する。

テーブル操作

  • テーブル作成: create tableコマンドでテーブルと列を定義する。
  • データ挿入: insert intoコマンドでテーブルにデータを追加する。
  • 行の更新: updateコマンドで特定条件を満たす行のデータを変更する。
  • 行の削除: delete fromコマンドで特定条件を満たす行を削除する。

結合

  • 結合: 2つのテーブルの情報を結び付ける作業。
  • 内部結合: inner joinを使って2つのテーブルで一致する行だけを結合する。
  • 左結合: left joinを使って左側テーブルのすべての行を保持し、右側テーブルに欠けている値はnullで埋める。

集計関数

  • 集計: 複数の値を1つにまとめる作業。
  • 一般的な集計関数: summaxminavgなどを使ってデータを集計する。
  • グループ化: group byを使って特定の列の一意な組み合わせごとに行をグループ化し、各グループに対して集計を行う。

GN⁺の見解

  • この記事は、データベースとSQLに関する基本的な理解を助けるための資料であり、初級ソフトウェアエンジニアやデータサイエンスに関心のある人に有用である。
  • 実際の例とともにSQLのさまざまな機能を説明しており、データベースの管理と操作に関する実践的な知識を提供している。
  • 特にデータベース結合、集計関数、テーブル操作などはデータ分析に関連する作業で非常に重要であり、この記事はこれらの概念を明確に理解するのに役立つ。

1件のコメント

 
GN⁺ 2024-02-07
Hacker Newsの意見
  • ChatGPTを使って、データサイエンティストのように複雑なクエリを書くことができる。これにより、コンバージョン率やメッセージのクリック率など、有用な指標を得られる。
  • データサイエンティストという用語の意味は、かつて「最もセクシーな職業」と言われていた時代から変化している。記事では、生物学の修士号を持つRachelが研究病院で細胞分析を行っており、データサイエンティストを目指している。かつてのデータサイエンティストは、定量的なバックグラウンドとソフトウェアエンジニアリングのバックグラウンドを兼ね備えた人たちだったが、現在では「過大評価されたデータアナリスト」と見なされることもある。
  • DuckDBを使ってこのガイドを書き直すとよいかもしれない。DuckDBは現在、データサイエンティストにとってSQLiteよりも頻繁に使われている。
  • 非常に簡潔なSQLガイドで、例を通じた優れた教育になっている。アメリカの大学ではこの内容を1学期間かけて教えるが、このガイドはデータベース最適化を除けば、ほとんどの業界のソフトウェアエンジニアリング職務には十分である。
  • TextQueryというMacアプリでSQLを練習できる。CSVデータセットをすばやく取り込み、SQLクエリを実行でき、現在のベータ版は無料で利用可能である。
  • Wi‑Fiが不安定なフライト中に備えて、長い単一ページのチュートリアルをダウンロードしておくのがよい。SQL以外の言語や技術についても同様のチュートリアルがあるのか気になる。
  • 多くのクエリはSQLiteでしか有効ではなく、一部のDBMSではサポートされていない機能が含まれている。たとえば、集計フィルタリングはMySQL、MS SQL、Oracleなどではサポートされていない。
  • データサイエンティスト向けのチュートリアルというより、一般的なSQLのよい要約に見える。
  • "left outer join" についての説明は等価条件にしか当てはまらず、left joinに対する誤った認識を生む可能性がある。このような説明は非常によく見られるが、誤解を招きやすい。