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

推薦する

JS で Websocket ベースのマルチターミナル ブリッジング プラットフォームを実装する方法

目次1. デバッグ対象2. WebSocketの機能3. ソケット接続を確立する3.1 部屋の作成方...

Vueでドラッグ可能なコンポーネントを実装する方法

この記事では、Vueでドラッグ可能なコンポーネントとドラッグ可能なコンポーネントを実装する方法を参考...

JavaScript の数値および数学オブジェクトの概要

目次1. JavaScript における数値2. Javascript の Math オブジェクト1...

フロントエンドのパフォーマンス最適化 - フロントエンドエンジニアが話し合うべき問題点

はじめに<br />前回の記事「私の CSS アーキテクチャ コンセプト」では、公園で友...

Mybatis ファジークエリ実装方法

Mybatis ファジークエリ実装方法mybatis のリバース アシスタントは非常に使いやすく、通...

Linuxのバージョン情報を復号化する方法

Linux バージョンに関する情報を表示および解釈するのは、見た目よりも少し複雑です。単純なバージョ...

Vue の新しい組み込みコンポーネントの使用方法の詳細な説明

目次1. テレポート1.1 テレポートの紹介1.2 テレポートの使用1.3 プレビュー効果2. サス...

JavaScript の基礎: スコープ

目次範囲グローバルスコープ関数のスコープもし、スイッチ、のために、その間ブロックスコープスコープチェ...

MySQL の重要なパフォーマンス インデックスの計算と最適化方法の概要

1 QPS 計算 (1 秒あたりのクエリ数) MyISAMエンジンベースのDBの場合 MySQL&g...

jsとcssのブロッキング問題の詳細な分析

目次DOMContentLoadedとロードjs ブロッキングとは何ですか? CSS ブロッキングと...

MySQL監視ツールmysql-monitorの詳細な説明

1. 概要mysql-monitor MYSQL 監視ツール、最適化ツール、1 つの Java Sp...

docker runとstartの違い

docker における実行と開始の違いDocker run はミラーイメージを指定します。そしてdo...

プロジェクトに必須の 8 つの JavaScript コード スニペット

目次1. ファイル拡張子を取得する2. コンテンツをクリップボードにコピーする3. スリープ時間は何...

jQuery ツリービュー ツリー構造アプリケーション

この記事では、jQueryツリービューツリー構造のアプリケーションコードを例として紹介します。具体的...

Reactはページの透かし効果の全プロセスを実現します

目次序文1. 使用例2. 実施プロセス3. コンポーネントコード要約する序文1. cavans では...