MySQL 学習メモ ------ グループ関数

//----------グループ化関数----------//

1. グループ化機能

1.機能

        統計に使用され、集計関数、統計関数、グループ関数とも呼ばれます。

2. 分類

        sum 合計、avg 平均値、max 最大値、min 最小値、カウント計算数

3. 特徴

(1) sum と avg は通常、数値型を処理するために使用されますが、max、min、count は任意の型を処理できます。

(2) 上記のグループ化関数は null 値を無視します。

(3) Distinct と組み合わせて重複排除操作を実現できます。

4. count 関数の別の紹介

(1) 通常、行数をカウントするには count(*) を使用します。

(2) グループ化機能とともにクエリされるフィールドは、group by 後のフィールドである必要があります。

2 番目に、グループ化関数の使用

1. 使いやすい

SELECT SUM(salary) FROM employees;#一般适用于数值型
SELECT AVG(salary) FROM employees;#一般适用于数值型
SELECT MIN(salary) FROM employees;#适用于数值、字符等,即可比较的都适用
SELECT MAX(salary) FROM employees;#适用于数值、字符等,即可比较的都适用
SELECT COUNT(salary) FROM employees;#适用任何类型

SELECT SUM(salary) 和,AVG(salary) 平均,MAX(salary) 最高,MIN(salary) 最低,COUNT(salary) 个数
FROM employees;

SELECT SUM(salary) 和,ROUND(AVG(salary),2) 平均,MAX(salary) 最高,MIN(salary) 最低,COUNT(salary) 个数
FROM employees;

2. サポートされているパラメータの種類

SELECT SUM(last_name) ,AVG(last_name) FROM employees;#不支持字符型
SELECT SUM(hiredate) ,AVG(hiredate) FROM employees;
SELECT MAX(last_name),MIN(last_name) FROM employees;
SELECT MAX(hiredate),MIN(hiredate) FROM employees;
SELECT COUNT(commission_pct) FROM employees;
SELECT COUNT(last_name) FROM employees;

3. Null値は無視されます

SELECT SUM(commission_pct) ,AVG(commission_pct),SUM(commission_pct)/35,SUM(commission_pct)/107 FROM employees;
SELECT MAX(commission_pct) ,MIN(commission_pct) FROM employees;
SELECT COUNT(commission_pct) FROM employees;
SELECT commission_pct FROM employees;

4.distinctとdistinctを連結します ---機能は重複データを削除することです

SELECT SUM(DISTINCT salary),SUM(salary) FROM employees;
SELECT COUNT(DISTINCT salary),COUNT(salary) FROM employees;

5. カウント関数 count の詳細な紹介 -- 行数をカウントするために使用されます

SELECT COUNT(salary) FROM employees;
SELECT COUNT(*) FROM employees;
SELECT COUNT(1) FROM employees;

#效率:
#MYISAM存储引擎下,COUNT(*)的效率高
#INNODB存储引擎下,COUNT(*)和COUNT(1)的效率差不多,比COUNT(字段)要高一些

6. グループ化関数とともにクエリされるフィールドは制限されています --- AVG (給与) は値を表します ---employee_id は値の列を表します

SELECT AVG(salary),employee_id  FROM employees;

3. 練習する

1. 従業員テーブル DATEDIFF の最大入力時間と最小入力時間の差を日数でクエリします --- この関数は、最初のパラメーターから 2 番目のパラメーターを引いたものです。

SELECT DATEDIFF(MAX(hiredate),MIN(hiredate)) FROM employees;
SELECT DATEDIFF(CURDATE(),'1995-12-3');

おすすめ

転載: blog.csdn.net/weixin_47156401/article/details/131927886