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 の NULL 値に関する体験談と分析チュートリアルシリーズ

目次1. テストデータ2. ヌル値による不便3. スペース、空の値、null をどのように判断すれば...

Dockerコンテナでアプリケーションサービスを自動的に起動する方法の例

コンテナの起動時に Docker コンテナ内のアプリケーション サービスを自動的に起動する場合。 D...

Web フォームの入力要素の高度な使用例 11 選

1. ボタンが押されたときに点線のボックスをキャンセルする<br />入力に属性値hid...

CSS 共通スタイルで二重矢印を描画するサンプルコード

1. 単一の矢印への複数の呼び出し単一の矢印を実装したら、二重矢印を実装するのは簡単です。上では、単...

@Font-face の基本的な使い方と、すべてのブラウザと互換性を持たせる方法

@Font-face 基本紹介: @font-face は、Web ページにカスタム フォントを表示...

HTMLハイパーリンクaタグのhrefジャンプとonclick間の実行順序の例

HTMLハイパーリンクaタグのhrefジャンプとonclickの実行関係htmlのaタグのhrefは...

CSS 疑似クラス: 空っぽだと光る (サンプルコード)

最近私の記事を読んだ人なら誰でも、私が現在WeChatミニプログラムプロジェクトを担当しており、その...

CSS3アニメーションとHTML5の新機能の詳しい説明

1. CSS3アニメーション☺CSS3 アニメーションは、JavaScript を介して要素のスタイ...

dockercompose を使用して springboot-mysql-nginx アプリケーションをビルドする

前回の記事では、Docker を使用して、コンパイルされた jar パッケージをイメージに組み込む ...

Nginx は gzip 圧縮に基づいてアクセス速度を向上します

1. nginx はなぜ gzip を使用するのですか? 1. 圧縮の役割:ページがgzipで圧縮さ...

2列の水平タイムラインを実装するためのVueサンプルコード

目次1.コンポーネントtimelineH.vueを実装する2. コンポーネントの呼び出しこの記事では...

少なくともn日間連続してログインしているユーザーに対するSQLクエリ

MySQL ツールを使用して、3 日間連続する例を見てみましょう。 1. SQL テーブルを作成しま...

Dockerを使用してgitlabコミュニティの中国語版を構築する詳細なプロセスを教えます

1. Docker Composeを使用して起動を構成するDocker Compose を知らない場...

Docker で Zookeeper をインストールする (スタンドアロンおよびクラスター)

Docker を起動したら、利用できるオプションを見てみましょう。 公式のものがある場合は、もちろ...

HTMLのテーブルの内容は中央に水平と垂直に表示されます

CSSスタイルファイルで指定 #class td /*表のテキストを左右上下に揃えるように設定する*...