日付による SQL グループ化

Ri Funiyoru Sql Gurupu Hua



SQL GROUP BY 句は、データをグループ化および集計するための強力なツールです。これは、特定の基準に基づいてデータをグループ化し、結果として得られたグループに対してアクションを実行する優れた方法を提供します。

GROUP BY の一般的な使用例の 1 つは、日付によるグループ化です。このチュートリアルでは、GROUP BY 句の操作の基礎を学び、それを使用して SQL で日付ごとにデータをグループ化する方法について説明します。







ノート: SQL の基本を理解していることを前提としています。デモンストレーションの目的で、このチュートリアルでは MySQL 8 を使用した例を使用します。ただし、このチュートリアルの概念を他の SQL ベースのデータベース エンジンに自由に移植できます。



サンプルテーブル:

最初のステップは、デモンストレーション用の基本的なテーブルとサンプル データを設定することです。作業したい既存のテーブルがある場合は、このセクションをスキップしてください。



テーブルを作成するには、次のクエリを使用します。





CREATE TABLE トランザクション (
ID int null ではない auto_increment 主キー、
日にち 日にち、
金額 10 進数 ( 10 2
;


テーブルを作成したら、次のようにサンプル データを挿入します。

トランザクションに挿入 ( 日にち 、 額
価値観
( 「2023-01-01」 100.00
( 「2023-01-02」 50.00
( 「2023-01-03」 75.00
( 「2023-01-04」 200.00
( 「2023-01-05」 150.00
( 「2023-01-06」 175.00
( 「2023-01-07」 50.00
( 「2023-01-08」 100.00
( 「2023-01-09」 25.00
( 「2023-01-10」 75.00
( 「2023-01-11」 150.00
( 「2023-01-12」 200.00
( 「2023-01-13」 250.00
( 「2023-01-14」 175.00
( 「2023-01-15」 150.00
( 「2023-01-16」 100.00
( 「2023-01-17」 50.00
( 「2023-01-18」 75.00 ;


これにより、ランダム データがトランザクション テーブルに追加されます。次のように、select ステートメントを使用して結果のテーブルを表示できます。



選択する * トランザクションから。


出力テーブル:


データの準備ができたら、次のステップに進むことができます。

SQL 日付によるグループ化

ご想像のとおり、GROUP BY 句を使用して、特定の値に基づいて特定のテーブル内のデータを分割します。句の構文は次のとおりです。

SELECT 列 1、列 2、...
FROM テーブル名
GROUP BY 列 1、列 2、...;


前の構文では、GROUP BY 句を使用して、データをグループ化する列を指定します。

前のテーブルから、次のクエリに示すように、日付列を使用してデータをグループ化できます。

選択する 日にち 、合計 ( として 合計金額
FROMトランザクション
グループ化 日にち ;


前のクエリは基本的な計算を実行し、sum() 関数を使用して毎日の合計金額を加算します。次に、日付値に基づいてデータをグループ化します。結果のテーブルは次のとおりです。

日付の形式

場合によっては、日付をフォーマットして読みやすくする必要があるかもしれません。例は次のとおりです。

DATE_FORMATを選択してください ( 日にち '%m/%d/%Y' として formatted_date、合計 ( として 合計金額
FROMトランザクション
グループ化 日にち ;


これにより、次のように指定された形式で日付値が返されます。

SQL フィルターの日付範囲

WHERE 句を使用して、結果セットを日付範囲でフィルタリングすることもできます。例は次のとおりです。

DATE_FORMATを選択してください ( 日にち '%m/%d/%Y' として formatted_date、合計 ( として 合計金額
FROMトランザクション
どこ 日にち 「2023-01-01」 「2023-01-15」
グループ化 日にち ;


結果のテーブルを以下に示します。


ほら、ありますよ!日付値に基づいて特定のテーブルのデータをグループ化する方法。

結論

このチュートリアルでは、SQL の GROUP BY 句を使用して特定の値に基づいてデータを並べ替える基本について説明しました。これにより、GROUP BY 句を使用して日付値に基づいてデータを分割する方法をカバーできるようになりました。