首頁  >  文章  >  資料庫  >  掌握 MySQL 聚合函數:簡化資料分析

掌握 MySQL 聚合函數:簡化資料分析

WBOY
WBOY原創
2024-09-07 06:00:32542瀏覽

在當今數據驅動決策的世界中,效率和精確度是成功的關鍵。 MySQL 的聚合函數是強大的工具,可讓使用者快速計算、分析和匯總資料。本文將向您介紹MySQL聚合函數,讓複雜的資料操作變得簡單有效率。

工具:
-資料庫:MySQL社群8.1
-GUI:SQLynx Pro 3.5.0

範例資料:

CREATE TABLE student_score (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  subject VARCHAR(50),
  score INT
);

INSERT INTO
  student_score (id, name, subject, score)
VALUES
  (1, 'Tom', 'Math', 80),
  (2, 'Tom', 'English', 90),
  (3, 'Tim', 'English', 98),
  (4, 'Alice', 'Math', 85),
  (5, 'Alice', 'English', 87),
  (6, 'Bob', 'Math', 78),
  (7, 'Bob', 'Science', null),
  (8, 'Charlie', 'History', 92),
  (9, 'Charlie', 'Math', 81),
  (10, 'Diana', 'English', 93);

1. 計數()

  • 用途:傳回符合指定條件的行數。
  • 注意:COUNT(*) 計算所有行,包括具有 NULL 值的行。 COUNT(column) 對指定列中的非 NULL 值進行計數。
  • 範例

Mastering MySQL Aggregate Functions: Simplifying Data Analysis

2.SUM()

  • 用途:傳回數字列中的值的總和。
  • 注意:總和中僅包含非 NULL 值。如果所有值均為 NULL,則傳回 NULL。
  • 範例

Mastering MySQL Aggregate Functions: Simplifying Data Analysis

Mastering MySQL Aggregate Functions: Simplifying Data Analysis

3.AVG()

  • 用途:計算數字列的平均值。
  • 注意:僅考慮非 NULL 值。如果沒有非 NULL 值,AVG() 會傳回 NULL。
  • 範例

Mastering MySQL Aggregate Functions: Simplifying Data Analysis

4.MAX()

  • 用途:傳回列中的最大值。
  • 注意:適用於數字、日期和字串類型。忽略 NULL 值。
  • 範例

Mastering MySQL Aggregate Functions: Simplifying Data Analysis

Mastering MySQL Aggregate Functions: Simplifying Data Analysis

5.MIN()

  • 用途:傳回列中的最小值。
  • 注意:與 MAX() 一樣,它適用於數字、日期和字串類型,並忽略 NULL 值。
  • 範例

Mastering MySQL Aggregate Functions: Simplifying Data Analysis

Mastering MySQL Aggregate Functions: Simplifying Data Analysis

6. GROUP_CONCAT()

  • 用途:使用可選分隔符號將列中的值連接成單一字串。
  • 注意:對於將不同行中的字串聚合為一行很有用。您可以指定分隔符號(預設為逗號)。僅連接非 NULL 值。
  • 範例

Mastering MySQL Aggregate Functions: Simplifying Data Analysis

7. JSON_ARRAYAGG()

  • 用途:將多行的值聚合到一個 JSON 陣列中。
  • 注意:它將列的結果集轉換為JSON數組。結果數組中僅包含非 NULL 值。
  • 範例

Mastering MySQL Aggregate Functions: Simplifying Data Analysis

8. JSON_OBJECTAGG()

  • 用途:將多行中的鍵值對聚合到一個 JSON 物件中。
  • 注意:第一個參數提供鍵,第二個參數提供產生的 JSON 物件的值。結果中僅包含非 NULL 鍵值對。
  • 範例

Mastering MySQL Aggregate Functions: Simplifying Data Analysis

9. 性病()

  • 用途:計算數值列的標準差,反映資料集中的變化或離散量。
  • 注意:STD() 和 STDDEV() 都是 STDDEV_POP() 的別名,用來計算總體標準差。僅考慮非 NULL 值。如果您需要計算樣本標準差,請使用STDDEV_SAMP()。
  • 範例

Mastering MySQL Aggregate Functions: Simplifying Data Analysis

10. STD_SAMP()

  • 用途:計算數值列的樣本標準差,提供樣本資料集中值的分佈情況的量測。
  • 注意:僅考慮非 NULL 值。與計算總體標準差的 STD() 或 STDDEV() 不同,STD_SAMP() 專門用於樣本數據,除以 n-1 以考慮樣本量偏差。
  • 範例

Mastering MySQL Aggregate Functions: Simplifying Data Analysis

11.VAR_POP()

  • 用途:計算數值列的總體變異數,測量資料點在整個總體中的分佈。
  • 注意:僅考慮非 NULL 值。當資料代表整個總體時,使用 VAR_POP() 除以 n(資料點總數)。
  • 範例

Mastering MySQL Aggregate Functions: Simplifying Data Analysis

12.VAR_SAMP()

  • 用途:計算數值列的樣本變異數,測量樣本中資料點的分佈。
  • 注意:僅考慮非 NULL 值。當資料代表總體樣本時,使用 VAR_SAMP(),除以 n-1 以調整樣本大小並避免偏差。
  • 範例

Mastering MySQL Aggregate Functions: Simplifying Data Analysis

13. BIT_AND()

  • 用途:傳回列中所有值的位元與。
  • 注意:適用於整數值並忽略 NULL 條目。
  • 範例

Mastering MySQL Aggregate Functions: Simplifying Data Analysis

14. BIT_OR()

  • 用途:傳回列中所有值的位元或。
  • 注意:與BIT_AND()類似,它對整數進行操作。
  • 範例

Mastering MySQL Aggregate Functions: Simplifying Data Analysis

15. BIT_XOR()

  • 用途:傳回列中所有值的位元異或。
  • 注意:位元異或對於奇偶校驗或類似任務很有用。
  • 範例

Mastering MySQL Aggregate Functions: Simplifying Data Analysis


這些聚合函數提供了強大的方法來匯總、計算和操作數據,使其成為數據分析和報告中必不可少的工具。使用它們時,請考慮它們如何處理 NULL 值,並注意特定的 SQL 模式或 MySQL 版本要求(例如 JSON 函數)。

以上是掌握 MySQL 聚合函數:簡化資料分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn