首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL MIN() 函式教學:最小值查詢與分組統計實例

     編輯:MySQL 資料庫相關知識

MIN() 聚合函式用於找出指定欄位的最小值,支援全表查詢與 GROUP BY 分組查詢。本文以 employee_tbl 完整示範。

資料準備

mysql> SELECT * FROM employee_tbl;
+------+------+------------+--------------------+
| id   | name | work_date  | daily_typing_pages |
+------+------+------------+--------------------+
| 1    | John | 2007-01-24 | 250                |
| 2    | Ram  | 2007-05-27 | 220                |
| 3    | Jack | 2007-05-06 | 170                |
| 3    | Jack | 2007-04-06 | 100                |
| 4    | Jill | 2007-04-06 | 220                |
| 5    | Zara | 2007-06-06 | 300                |
| 5    | Zara | 2007-02-06 | 350                |
+------+------+------------+--------------------+

全表最小值

mysql> SELECT MIN(daily_typing_pages) FROM employee_tbl;
+-------------------------+
| MIN(daily_typing_pages) |
+-------------------------+
| 100                     |
+-------------------------+

分組最小值:GROUP BY name

mysql> SELECT id, name, work_date, MIN(daily_typing_pages) 
    -> FROM employee_tbl GROUP BY name;
+------+------+------------+-------------------------+
| id   | name | work_date  | MIN(daily_typing_pages) |
+------+------+------------+-------------------------+
| 3    | Jack | 2007-05-06 | 100                     |
| 4    | Jill | 2007-04-06 | 220                     |
| 1    | John | 2007-01-24 | 250                     |
| 2    | Ram  | 2007-05-27 | 220                     |
| 5    | Zara | 2007-06-06 | 300                     |
+------+------+------------+-------------------------+

注意:GROUP BY 時,非聚合欄位(id、work_date)的值取自該群組的第一筆記錄(MySQL 預設行為),不一定對應到最小值那一筆。若需精確對應,請使用子查詢或視窗函式(MySQL 8.0+)。

MIN 與 MAX 合用:同時取得最小與最大值

mysql> SELECT MIN(daily_typing_pages) least, MAX(daily_typing_pages) max 
    -> FROM employee_tbl;
+-------+------+
| least | max  |
+-------+------+
| 100   | 350  |
+-------+------+

單次掃描即可取得極值區間,效能優於分開查詢。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved