MySQL の基本: グループ化関数、集計関数、グループ化クエリの詳細な説明

MySQL の基本: グループ化関数、集計関数、グループ化クエリの詳細な説明

1. 使い方が簡単

SUM: 合計(通常は数値の処理に使用されます)
AVG: 平均(通常は数値の処理に使用されます)
MAX: 最大値(文字列や日付の処理にも使用できます)
MIN: 最小値 (文字列や日付の処理にも使用できます)
COUNT: 数量(NULL以外の値の数を数える)

上記のグループ化関数は NULL 値を無視します。

SELECT SUM(給与) AS 合計、AVG(給与) AS 平均、MAX(給与) AS 最大、MIN(給与) AS 最小、COUNT(給与) AS 数値 FROM employees;

ここに画像の説明を挿入

2. DISTINCTを使用して重複を削除する

(上記機能はすべてご利用いただけます)

SELECT SUM(DISTINCT salary) AS sum、AVG(DISTINCT salary) AS average、COUNT(DISTINCT salary) AS number of duplicates removed、COUNT(salary) AS number of non-duplicates FROM employees;

ここに画像の説明を挿入

3. COUNT()の詳細な紹介

#行数をカウントする方法と同等 SELECT COUNT(*) 
従業員から;
#行をカウントする2番目の方法と同等で、1は他の定数またはフィールドに置き換えることができます。SELECT COUNT(1) 
従業員から;

効率の問題:
COUNT(*)はMYISAMストレージエンジンでは非常に効率的です
INNODBストレージエンジンでは、 COUNT(*)COUNT(1)はほぼ同じくらい効率的ですが、 COUNT(字段)よりも効率的です。

したがって、行数をカウントするには、通常、 COUNT(*)が使用されます。

4. グループクエリ

#[] にはオプションの SELECT グループ化関数とリストが含まれます (GROUP BY の後に指定する必要があります)
FROM テーブル [WHERE フィルタ条件]
GROUP BY グループ化リスト [ORDER BY 句]

例:

#各職種の最高給与を照会する SELECT MAX(salary) AS 最高給与, job_id
従業員から
ジョブIDごとにグループ化します。

ここに画像の説明を挿入

#各部門のメールに が含まれる従業員の平均給与を照会する(グループ化前にスクリーニング)
SELECT AVG(salary) AS 平均給与、department_id
従業員から
WHERE メール LIKE '%a%'
部門IDでグループ化;

ここに画像の説明を挿入

#従業員数が2人以上の部門の従業員数を照会する(グループ化後のスクリーニング)
#HAVINGの使用
従業員番号、部署IDとしてCOUNT(*)を選択します
従業員から
部門IDによるグループ化
COUNT(*)>2である;

ここに画像の説明を挿入

ここに画像の説明を挿入

#SELECT COUNT(*) AS 従業員数、job_id、department_id を複数のフィールドで選択
従業員から
ジョブID、部門IDでグループ化します。

ここに画像の説明を挿入

#完全な構造 SELECT AVG(salary) AS average salary, department_id
従業員から
department_id が NULL ではない場合
部門IDによるグループ化
平均給与が9000以上
ORDER BY AVG(給与) DESC;

ここに画像の説明を挿入

これで、MySQL のグループ化関数、集計関数、グループ化されたクエリの基本についての説明は終了です。MySQL のグループ化関数の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • 非常に実用的なMySQL関数の包括的な概要、詳細な例の分析チュートリアル
  • MySQL実践ウィンドウ関数SQL分析クラスの生徒のテストの成績と生活費
  • MySQL データベースの基礎 SQL ウィンドウ関数の例の分析チュートリアル
  • mysql 計算関数の詳細
  • 単一行関数と文字計算日付プロセス制御を説明する MySQL の例
  • MySQL関数の簡単な紹介
  • MySQL 空間データストレージと関数
  • MySQL関数の包括的な概要

<<:  Linux システムでの Selenium クローラー プログラムの導入の概要

>>:  ウェブページのFOUC問題によるウェブページの混乱の解決策

推薦する

MySQLの実行プロセスとシーケンスについての簡単な説明

目次1:mysql実行プロセス1.1: コネクタ1.2: キャッシュ1.3: アナライザー1.4: ...

Element-UIの10の驚くべきトリックのまとめ

目次el-scrollbar スクロールバーel-uploadはクリックをシミュレートしますel-s...

Apache FlinkCEP でタイムアウトステータス監視を実装するための詳細な手順

CEP - 複合イベント処理。ご注文後、一定期間内にお支払いの確認が取れませんでした。タクシーの配...

MySQL トランザクション自動コミット自動コミット操作

MySQL のデフォルトの動作モードは自動コミット モードです。つまり、明示的にトランザクションを開...

CSS3はキングをマッチングさせるときにパーティクルアニメーション効果を実現します

コーディングをしていると、多くのことが同じ結末を迎えることに気づくでしょう。問題を解決する方法は何千...

jsは、州、市、地区の3レベルのリンクの非選択ドロップダウンボックスバージョンを実現します。

インターネットで3レベルリンクを検索したところ、すべてオプションで書かれていました。突然、別の方法で...

MySQL は、元のデータと同じデータがある場合、更新ステートメントを再度実行しますか?

背景この記事では主に、MySQL が更新ステートメントを実行するときに、元のデータと同一の (つまり...

Windows Server 2016 リモート デスクトップ サービスの構成とライセンスのアクティブ化 (2 ユーザー)

Server 2016 のリモート デスクトップ接続のデフォルト数は 2 ユーザーです。2 人以上...

Vueは2つのルーティング許可制御メソッドを実装しています

目次方法 1: ルーティング メタ情報 (meta)方法 2: ルーティング テーブルを動的に生成す...

基本的なウェブページパフォーマンス最適化ルールの簡単な概要

ブラウザのウェブページを最適化するためのいくつかのルールページの最適化静的リソース圧縮ビルド ツール...

webpackが静的リソースキャッシュを実装する方法

目次導入複数の異なるハッシュを区別するハッシュチャンクハッシュコンテンツハッシュjs キャッシュの実...

ウェブページ HTML 順序付きリスト ol と順序なしリスト ul

データを整理するためのリストWeb ページの表示を制御する多数の HTML タグを学習した後、読者は...

Linux でファイルの権限 (所有権) を変更する

Linux と Unix はマルチユーザー オペレーティング システムであるため、ファイルの権限と所...

Bツリーの削除プロセスの紹介

前回の記事 https://www.jb51.net/article/154157.htm では、B...