SQLでのデータのピボット
ここから始めますか?このレッスンは、SQLをデータ分析に使用するための完全なチュートリアルの一部です。冒頭を確認してください。
このレッスンでは、以下について説明します。
- 行を列にピボットする
- 列を行にピボットする
- 次は何ですか?
行を列にピボットする
このレッスンでは、分析用にフォーマットされたデータを取得し、表示またはグラフ化するためにピボットする方法を学習します。 。次のようなデータセットを取得します:
次のようにします:
この例では、CASEレッスンで使用したのと同じ大学フットボール選手のデータセットを使用します。ここでデータを直接表示できます。
まず、データを集計して、内部結合レッスンの最初の例と同様に、各会議の各年のプレーヤー数を表示します。
これをモードで表示します。
データを変換するには、上記のクエリをサブクエリに入れる必要があります。変換を開始する前に、サブクエリを作成し、そこからすべての列を選択すると便利な場合があります。このように段階的にクエリを再実行すると、クエリが実行されない場合のデバッグが容易になります。並べ替えるため、サブクエリからORDER BY
句を削除できることに注意してください。結果は外部クエリに表示されます。
計画どおりに機能すると仮定すると(結果は最初のクエリとまったく同じに見えるはずです)、さまざまな年の結果を異なる列に分割するときが来ました。各項目SELECT
ステートメントで列が作成されるため、「年ごとに個別の列を作成する必要があります。
技術的には、次の目標を達成しました」このチュートリアルですが、これでも少し改善できる可能性があります。上記のクエリにより、会議のアルファベット順に並べられたリストが生成されることがわかります。 「プレーヤーの総数」列を追加し、それで並べ替える方が理にかなっている場合があります(最大から最小):
これで完了です!これをモードで表示します。
ピボット列行へ
インターネット上で見つけられる多くのデータは、分析ではなく消費用にフォーマットされています。たとえば、2000年から2012年までの世界中の地震の数を示す次の表を見てください。
この形式では、「何を」などの質問に答えるのは困難です。 「地震の平均的な大きさは?」データを「マグニチュード」、「年」、「地震数」の3列で表示するとはるかに簡単になります。データをその形式に変換する方法は次のとおりです。
まず、このデータをモードで確認します。
注:列モードでは列名を文字で始める必要があるため、名前は「year_」で始まります。
ここで最初に行うことは、元のテーブルのすべての列を新しいテーブルの行としてリストするテーブルを作成することです。 。変換する列が大量にある場合を除いて、最も簡単な方法は、多くの場合、サブクエリに列をリストすることです。
これを取得したら、worldwide_earthquakes
テーブルと相互結合して拡張ビューを作成できます。
worldwide_earthquakes
は13回複製されます。最後に行うことは、worldwide_earthquakes
テーブルの正しい列からデータをプルするCASE
ステートメントを使用してこれを修正することです。 year
列:
モードで最終製品を表示します。
AdvancedSQLチュートリアルを終了しました。おめでとうございます。 SQLを理解したので、次のステップは分析プロセスを磨くことです。
その目的のためにSQL分析トレーニングセクションを作成しました。実世界の状況を模倣する偽のデータセットを使用すると、実地訓練のようにこのセクションにアプローチできます。ぜひチェックしてください!