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問題によるウェブページの混乱の解決策

推薦する

Windows 上の Docker にさまざまなソフトウェアをインストールする詳細なプロセス

1. MySQLをインストールする # docker で mysql をダウンロード docker ...

CSSセレクタを使用してラベルスタイルを設定するサンプルコード

CSS セレクターHTML タグにスタイルを設定すると、タグの属性を設定できます。 <div ...

インタラクティブな視覚化 JS ライブラリ gojs の使い方の紹介とヒント

目次1. gojsの紹介2. Gojsのアプリケーションシナリオ3. gojs を選ぶ理由: 4. ...

Raspberry Pi 4b ubuntu19 サーバーへの docker-ce のインストール手順

Raspberry Pi モデルは 4b、1G RAM です。システムはubuntu19.10サーバ...

MySQL で結果を選択して更新を実行する例のチュートリアル

1. 単一テーブルクエリ -> 更新 テーブル名の更新 フィールド1=新しい値1、フィールド2...

Linux で ss コマンドと zabbix を組み合わせてソケットを監視する方法の詳細な説明

目次序文1. ssコマンド2. Zabbix監視マシンの全体的なソケットステータス2.1. スクリプ...

Vueカスタムコンポーネントはイベント修飾子を使用してピットレコードを踏む

序文今日、自作のコンポーネントを使っていたところ、突然、長い間忘れていたバブリングイベントに遭遇しま...

nginx 設定チュートリアルにおける add_header の落とし穴の詳細な説明

序文add_header は、headers モジュールで定義されたディレクティブです。名前が示すよ...

MySQL 5.7.31 64 ビット無料インストール版チュートリアル図

1. ダウンロードダウンロードアドレス: https://dev.mysql.com/get/Dow...

Linuxのwatchコマンドの使用

1. コマンドの紹介watch コマンドは、指定されたコマンドを定期的に実行し、実行結果を全画面に表...

Vueは時間カウントダウン機能を実装する

この記事では、Vueの具体的なコード例を参考までに紹介します。具体的な内容は以下のとおりです。必要:...

Docker を使用した Redis マスタースレーブレプリケーションの実践の詳細説明

目次1. 背景2. 操作手順3. Dockerをインストールする4. 主なサービス構成5. サービス...

JavaScriptはパスワードボックスの検証情報を実装します

この記事では、パスワードボックスの検証情報を実装するためのJavaScriptの具体的なコードを例と...

MySQL を使用した分散ロックの実装

導入分散システムでは、分散ロックは最も基本的なツール クラスです。たとえば、支払い機能を備えた 2 ...

MySQLトリガーの使用

目次1. トリガーの紹介1. トリガーとは何ですか? 2. トリガーの特徴2. トリガーを作成する1...