Articles

Excel to SQL:なぜスイッチを作るべきか

ExcelやGoogle Sheetsなどのスプレッドシートアプリケーションを職場で使用する場合、これらの問題はよく知られているかもしれません。

  • データに偶発的な変更を加えるのは簡単です
  • 新しいデータについて古い分析を複製するのは難しいです(覚えておくべき多くのステップ!)
  • 大規模なデータセットでは遅い
  • 電子メールで巨大なスプレッドシートを共有するのは面倒です

スプレッドシートアプリケーションは、親しみやすく、遍在しており、柔軟性があります。 セルの結合、コメントの追加、データのピボット、表の書式設定、グラフの作成ができます。 しかし柔軟性と危険は来る。 彼らはより多くの作業、より多くの待機、より多くのバージョン管理の頭痛、およびより低い精度につながる可能性があります。 幸いなことに、SQLはExcelよりも速く、簡単に、そして安全になることができます。 SQLが何であるかを学び、なぜそれがデータを操作および分析する優れた方法であるのかを確認するために読んでください。

Excelの短所

実用的なアプリケーションから始めましょう。 ポケモンとその特性のこの表を見てみましょう:

Name Type Weight
bulbasaur grass 15
charmander fire 19
squirtle water 20
pikachu electric 13
oddish grass 12
snorlax normal 1014
mewtwo psychic 269

Suppose that we want to use Excel to filter out everything but the name そして、テーブル内のすべての草のタイプのポケモンの種類。 Excelでは、ステップバイステップの手順を使用してデータを取得する必要があります。

  • Pokémonテーブルを開きます
  • “type”列にフィルタを追加します
  • filter for type=”grass”
  • “name”を除くすべての列を削除します

この時点で、データを編集しました(潜在的なエラー)。仲間のポケモントレーナー(痛いバージョン管理)に。Pokémonテーブルが成長するにつれて、ExcelまたはGoogle Sheetsが遅くなります。 行の数が数千になっている場合、ワークフローが本当に損なわれる可能性があります。 あなたが”死の風車”または”Excelが予期せず終了する”メッセージを見つめて立ち往生したことがある場合は、痛みを知っています。SQLとは何ですか?

SQLはプログラミングで使用される単なる言語です。 “SQLを使用する”と言うとき、これは私たちが意味することです:

  • あなたのデータはテーブルで作られたリレーショナルデータベースに格納されます。 これらのテーブルは、通常、行と列を持つExcelの1つのシートのように見えます。
  • データを取得し、sqlで記述された一連の命令であるクエリを使用して分析を実行します。 テキストファイルを保存するのと同じ方法で保存できます。
  • Excelやシートのようにデータを取得する方法を説明する代わりに、クエリは必要なデータを説明します。 これらのクエリは、必要な取得および分析の手順を実行するSQLインタプリタを使用して実行できます。

ExcelからSQLへ:なぜスイッチを作るのですか?

SQLはExcelよりもはるかに高速です。 Excelで1時間近くかかることを実行するには、SQLで数分かかることがあります。 Excelは技術的に100万行を処理できますが、それはおそらく使用しているピボットテーブル、複数のタブ、および関数の前です。

SQLは分析とデータも分離します。 SQLを使用する場合、データは分析とは別に保存されます。 代わりに、大規模なExcelファイルを電子メールで送信するのは、あなたの分析のための指示を含む小さなプレーンテキストファイルを送信することがで チームメイトはそれぞれ同じデータにアクセスできるため、自分で分析を実行できます。 ファイルのバージョンを管理したり、データを破損する危険性を冒す必要はなく、他のデータで再実行することができます。

このすべては、SQLスキルのための雇用者からの深刻な需要に貢献しています。

“死の風車”にさよならを言う

SQLでデータを分析

クエリはどのように機能しますか?

ポケモンのテーブルを覚えていますか?

Name Type Weight
bulbasaur grass 15
charmander fire 19
squirtle water 20
pikachu electric 13
oddish grass 12
snorlax normal 1014
mewtwo psychic 269

With SQL, we can write queries to declare exactly what we want from the データ。 たとえば、次のようにします。

このクエリは、「草」タイプであるpokemonテーブル内のすべてのポケモンの名前とタイプが”

結果のテーブルは次のようになります。

名前 タイプ
bulbasaur grass
奇妙な grass
oddish grass

このクエリを分解してみましょう:

  • SELECTは、クエリを開始するようにSQLに指示するキーワードです
  • nametypepokemonテーブル
  • pokemonテーブル
  • namenametypepokemonテーブル
  • pokemonテーブル
  • WHERE指定された条件でデータをフィルタリングします

これをexcelの同等の作業と比較します。 エラーが発生しやすく、実行が遅く、複製が難しく、共有が面倒な一連の手順を実行するのではなく、SQLクエリをより速く、簡単に、安全に実行できます。まだSQLで数式を使用できますか?

Excelのパワーユーザーの場合は、次のような使い慣れた数式をあきらめることを躊躇するかもしれません。

またはこれ:

SQLは、構造化された英語のような構文のおかげで、同じ機能を提供し、読みやすくなります。 SUMCASEは条件付きロジックを処理するために使用されます。 たとえば、次のようにします。

または:

最初のステートメントは、pokemonテーブル内のすべての重みの合計を返します。 それぞれのポケモンの名前とサイズラベル(5未満の場合は”small”、15未満の場合は”medium”など)が返されます。). SQLでは、抽象セル参照の代わりに特定の列名が使用され、かっこやカンマの代わりにWHENTHENのような単語が使用されていることに注意してください。

ピボットテーブルを使用することもできます。 入力するだけでGROUP BY:

このクエリは、各タイプに該当するすべてのポケ:tr>

electric

13
normal 1014
psychic 269

このsqlステートメントは、excelで同じピボットを記述するために必要な命令のリストよりも簡潔で具体的であり、excelで同じピボットを記述する必要がある命令のリストよりも簡潔で具体的である。文は、少しの労力で複数のデータセット上で実行することができます。 言い換えると、SQL文は簡単にレビューでき、簡単に転送できます。

結論として

シートやExcelのようなスプレッドシートアプリケーションは、プレゼンテーション、グラフ作成、小さな分析には最適ですが、重いリフティングを必要とするタスクには不十分な場合があります。 SQLは、これらのタスクのほとんどをより速く完了することができ、最初から最後までよりユーザーフレンドリーです。自分でSQLを試したい場合、またはPokémonが十分に説得力のある議論をしていないと思われる場合は、無料の「なぜSQLを学ぶのですか?”コースは、Codecademyのデータカリキュラムデザイナーとデータサイエンスのヘッド、ヒラリー*グリーン*ラーマンによって書かれました。あなたは言語のインとアウトを学び、実際のデータでそれを練習する準備ができている場合は、Codecademyの最新のプロ集中でゼロからSQLを学ぶことができます。

あなたが学び、SQLで改善するように、あなたは魅力的な表やグラフを作るための最後の段階としてExcelを予約し、ExcelからSQLにあなたのワークロードの多くをシフトすることができるようになります。

Sonny LiとDan Layfieldがこの記事に貢献しました。