SQL文でのgroup byの使用について簡単に説明します

SQL文でのgroup byの使用について簡単に説明します

1. 概要

Group by は、by の後の規則に従ってデータをグループ化することを意味します。いわゆるグループ化とは、データ セットをいくつかの「小さなグループ」に分割し、それに応じて処理することを意味します。

2. 文法規則

SELECT 列名、集計関数(列名)
テーブル名から
WHERE 列名 演算子 値
GROUP BY 列名

3. 例

次のような注文表があります。

各ユーザーの注文の合計金額をカウントしたい場合は、group by を使用します。

Customer を選択し、合計 (OrderPrice) を total_price として Customer 別にグループ化します。

次の結果セットが表示されます。
ブッシュ 2000
カーター 1700
アダムス 2000
実際には、データは最初に顧客別にグループ化され、次に各グループの orderPrice の合計が計算され、最後に各グループが行として表示されます。
group by ステートメントを削除すると、次の結果が表示されます。

すべての価格を合計して最終的な合計額を算出することになりますが、これは私たちの予想とは異なります。

4. 注記

次のような表示が出た場合:

カテゴリを選択、数量の合計として合計(数量)、要約から A、カテゴリ別にグループ化、カテゴリ別に並べ替え、降順

選択したフィールドはグループ化の基準として group by の後に含まれているか、集計関数に含まれている必要があるため、エラーが報告されます。そうしないと、集計列が行と一致しません。
したがって、次のものを使用できます。

カテゴリを選択し、合計(数量) AS Aグループからの数量の合計をカテゴリ別に並べ替え、合計(数量)で降順で並べ替え

複数の列でグループ化する場合は、group by all 構文を使用できます。

顧客、注文日、注文価格の合計を選択し、すべての顧客、注文日でグループ化します。

5. whereとhavingの違い

where は、クエリのグループ化の前に where 条件を満たさない行を削除します。つまり、グループ化の前にデータをフィルターします。where 条件には集計関数を含めることはできません。
Having は、条件を満たすグループをフィルタリングすること、つまりグループ化後にデータをフィルタリングすることです。having ステートメントには集計関数が含まれることが多く、特定のグループをフィルタリングするために having が使用されます。
例:

Customer を選択し、合計価格として (OrderPrice の合計)、合計価格が 1700 を超える Customer でグループ化します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • この記事では、データベースでグループ化を使用する方法を説明します。
  • 単語のグループ化シーケンスと複数フィールドのグループ化のための MySQL グループ方法
  • Pymongo で group by を使用する方法のチュートリアル

<<:  自動開始および停止コマンドを適用するには、Docker サービスを再起動します (推奨)

>>:  vscodeを使用してReact Native開発環境を構築する方法を教えます

推薦する

CSS テキスト装飾 text-decoration と text-emphasis の詳細な説明

CSS では、テキストは私たちが毎日扱う最も一般的なものの 1 つです。テキストの場合、テキストの装...

RHCEはApacheをインストールし、ブラウザでIPにアクセスします

1. at は、5 時間後にルート ディレクトリの at_test ファイルに「これは at タスク...

DockerイントラネットはDNSを構築し、ip:port操作の代わりにドメイン名アクセスを使用します

たとえば、イントラネットに Jenkins サーバーがある場合、そのサーバーにアクセスするには、その...

MySQL と接続関連のタイムアウトの詳細な概要

MySQL と接続関連のタイムアウト序文:今日、同僚から、データ量が多いときに MySQL データベ...

Nginx ログ出力のリクエスト後パラメータを設定する方法

【序文】当プロジェクトの SMS 機能は、第三者に接続することです。第三者からの元の受信確認要求は ...

Linuxでプロセスが占有するポート番号を表示する

Linux システム管理者にとって、サービスがポートに正しくバインドされているか、またはポートをリッ...

HTML で Web ページに動的な時計を書く

HTML を使用して動的な Web クロックを作成します。コードは次のとおりです。 <!DOC...

MySQL における datetime と timestamp の違いと選択

目次1 違い1.1 スペース占有1.2 表現範囲1.3 タイムゾーン2 テスト3つの選択肢MySQL...

MySQL 外部キー制約の例の説明

MySQL の外部キー制約は、2 つのテーブル間のリンクを確立するために使用されます。 1 つのテー...

Linux でショートカットアイコンを設定する方法

序文Linux でショートカットを作成すると、アプリケーションをより速く開くことができます。ここで、...

Centos7でmysql6の初期化インストールパスワードをインストールする方法

1. まずデータベースサーバーを停止しますサービスmysqld停止2.vim /etc/my.cnf...

clearfixとclearの例

この記事では、CSS を理解し始めたばかりの人を対象に、主に HTML で clearfix と c...

Windows および Linux での Redis のインストールとデーモン設定

# Windows および Linux 上の Redis のインストール デーモン構成Redis の...

画像をMySQLデータベースに保存し、フロントエンドページに表示するための実装コード

目次1. まず、pycharmを使用してDjangoプロジェクトを作成し、関連する環境を設定します。...

Vite2.x に基づく Vue 3.x プロジェクトの実装

Vue 3.x プロジェクトの作成 npm init @vitejs/app my-vue-app ...