CodeGym /コース /SQL SELF /データのフォーマット

データのフォーマット

SQL SELF
レベル 5, レッスン 0
使用可能

まずは超基本だけど大事なことから始めよう:データってそのままだと「生データ」なことが多いんだよね。数字や日付、文字列がごちゃごちゃしてると、見てるだけで頭が痛くなる。例えば、レポートで日付がバラバラのフォーマットで書かれてたらどう?01/02/2023もあれば2023-02-01もある。これ、どんなに注意深いアナリストでも混乱しちゃうよね。そこで登場するのがデータのフォーマットっていう魔法なんだ。

データのフォーマットを使うと:

  • データを見やすい形に変換できて、作業がめっちゃ楽になる。
  • データ分析のライフハック使いになって、必要な情報をサクッと取り出せる。
  • エクスポートや他のシステムとの連携用にデータを準備できる。
  • レポートや可視化を読みやすくて正確にできる。

例えば、君が大学で働いてて、全学生のフルネーム、生年月日、学部を一覧にしたレポートを作る必要があるとしよう。データを手作業でくっつけるんじゃなくて、フォーマット付きのクエリを使えば、名前と苗字を1つのカラムにまとめたり、生年月日を「2001年3月12日」みたいに分かりやすく表示できるんだ。

データフォーマットの主なタスク

データのフォーマットって、フルーツサラダを作るのに似てる。フルーツをただボウルにぶち込むんじゃなくて、ちゃんと切ってキレイに盛り付けるでしょ。SQLでもこの作業はいくつかのタイプに分かれるんだ:

文字列のフォーマット

これは文字列の結合や、大文字・小文字の変換(全部大文字や全部小文字にしたり)、スペースや記号の追加・削除なんかが含まれるよ。

数字のフォーマット

場合によっては数字を文字列に変換したり、小数点以下の桁数を丸めたりするのが便利。

日付や時間の操作

ここでは、現在の日付を取得したり、日付データのフォーマットを変えたり、日付の一部(例えば年だけとか月だけとか)を取り出したりできる。

ユニークな値の抽出

レポートでユニークなレコード(例えばユニークな都市や学部)だけを表示したい場合も、これもデータフォーマットの一部だよ。

PostgreSQLで使えるフォーマット用ツール

PostgreSQLにはデータ操作用の便利な組み込み関数がたくさんある。ここでは、次のレクチャーで詳しくやるものの一部を紹介するね:

文字列のフォーマット

  • CONCAT(): 文字列の結合。
  • UPPER(), LOWER(): テキストの大文字・小文字変換。

日付と時間のフォーマット

  • NOW(): 現在の日付と時間。
  • CURRENT_DATE: 現在の日付(時間なし)。
  • DATE_PART(): 年や月など、日付の一部を取り出す。

型変換

  • CAST(): データ型の変換。
  • 構文: <値>::<型>。

データのソート

  • ORDER BY: 1つまたは複数のカラムでデータをソート。
  • DISTINCT: ユニークな値の抽出。

データフォーマットの例:実際どうなる?

興味を持ってもらうために、いくつか例を見てみよう。まずはシンプルなやつから。

例1:文字列のフォーマット

SELECT CONCAT(first_name, ' ', last_name) AS full_name
FROM students;

このクエリはfirst_nameとlast_nameを1つのカラムfull_nameにまとめるよ。例えば、学生の名前が「Otto」で苗字が「Art」なら、結果は「Otto Art」になる。

例2:日付のフォーマット

SELECT DATE_PART('year', date_of_birth) AS birth_year
FROM students;

ここではdate_of_birthカラムから生まれた年だけを取り出してる。もしデータベースの日付が2001-03-15なら、結果は2001になるよ。

例3:型変換

SELECT birth_year::text || ' 年' AS formatted_year
FROM (
  SELECT DATE_PART('year', date_of_birth) AS birth_year
  FROM students
) subquery;

このクエリでは、まず生まれた年を取り出して、それを文字列に変換して" 年"をくっつけてる。例えば、結果は2001 年みたいになる。

どこで使うの?

マネージャー向けレポート

みんなが「生データ」を見たいわけじゃない。例えば、会社の売上レポートなら、金額は千単位で区切って(1,000,000みたいに)、日付も21 FEB 2025みたいなフォーマットの方がいいよね。

クライアント向けレポート

例えば、クライアントへのメールで「親愛なる[名前 苗字]様、ご注文N123は2023年10月12日に無事配達されました」みたいな文面を作るとき。

他システムとの連携

入力フォームによっては、特定のデータフォーマットが必要なこともある。日付はISO形式、文字列は大文字小文字を区別、数字は丸めて表示、みたいな。

分析や可視化

グラフやチャートを作るとき、フォーマットなしだと見た目がめちゃくちゃになることもあるよ。

2
タスク
SQL SELF, レベル 5, レッスン 0
ロック未解除
文字列の結合
文字列の結合
2
タスク
SQL SELF, レベル 5, レッスン 0
ロック未解除
数値の変換とテキストの追加
数値の変換とテキストの追加
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION