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開発環境を構築する方法を教えます

推薦する

入力ファイルの制御と美化について

一部のWebサイトでアップロードする場合、「参照」ボタンをクリックすると、[ファイルの選択]ダイアロ...

WeChatミニプログラム抽選コンポーネントの使い方

WeChatコンポーネントの形式で提供されます。コンポーネント内部ではasync/awaitが使用さ...

Dockerコンテナでルート権限を取得する方法

まず、コンテナが稼働している必要がありますコンテナのCONTAINER IDは、sudo docke...

アニメーション効果のようなVueトランジションの例

目次結果を一目で見るハート効果デジタルスクロールアニメーションアニメーションのように結果を一目で見る...

親コンテナの CSS 均等分割 (完全三分の一) の実装

親コンテナの幅は固定されています。子要素が親の幅を均等に分割するには、どのような方法がありますか?コ...

HTML onfocus gain focus および onblur lose focus イベントの詳細な説明

HTML onfocus イベント属性定義と使用法onfocus 属性は、要素がフォーカスを受け取っ...

CSSスプライトの応用の詳細な説明

CSS Sprite は、CSS スプライトとも呼ばれ、画像結合技術です。この方法は、複数の小さなア...

Linuxコマンドunzipの詳しい説明

目次1. 解凍コマンド1.1 構文1.2 オプション2. 例1. 解凍コマンドunzip コマンドは...

MySQL の NOT IN 充填ピットの NULL 列の問題の解決方法

以前、会社で小さな機能に取り組んでいたとき、特定の状況でデータがいくつあるかを数えてから問題を修正し...

Vueはvue-quill-editorリッチテキストエディタを使用し、画像をサーバーにアップロードします。

目次1. 準備2. グローバルコンポーネント quill-editor を定義する1. テンプレート...

表面的なウェブデザイン

<br />私はいつもYahooのウェブデザインが素晴らしいと信じてきました。しかし、こ...

Windows Server 2016 に Docker をインストールするプロセスと発生した問題

前提条件Windows Server でコンテナーを実行するには、Windows Server (半...

CSS3は子供のころの紙飛行機を実現する

今日は折り紙飛行機(飛べる飛行機)を作ります基本的にすべてCSSで実装されており、JSはごく一部に過...

7つのMySQL JOINタイプのまとめ

始める前に、これから紹介する JOIN タイプを示すために 2 つのテーブルを作成します。テーブルを...

Vueコンポーネントの動的コンポーネントの詳細な説明

目次要約する要約する配列が変更されると、対応するデータを動的にロードしますシナリオ: 異なるコンポー...