OceanBase MAX

2021-06-24 16:04 更新

?MAX? 函數(shù)返回參數(shù)中指定的列中的最大值。

語法

MAX([ DISTINCT | UNIQUE | ALL ] expr) [ OVER (analytic_clause) ]

作為分析函數(shù)使用時(shí),您需要使用窗口函數(shù)的完整語法,它對一組行的集合進(jìn)行計(jì)算并返回多個(gè)值。作為聚合函數(shù)使用時(shí),該函數(shù)對一組行的集合進(jìn)行聚合計(jì)算,結(jié)果只能返回一個(gè)值,此時(shí)不需要加 ?OVER? 關(guān)鍵字。

參數(shù)

參數(shù)

說明

DISTINCT

返回的行中去除重復(fù)行,且忽略值為 NULL 的行。

UNIQUE

返回的行中去除重復(fù)行,且忽略值為 NULL 的行。

ALL

返回所有值,包含重復(fù)行,且忽略值為 NULL 的行。

expr

可為數(shù)值、字符、日期型或其它類型的數(shù)據(jù)列或表達(dá)式。

OVER

使用 OVER 子句定義窗口進(jìn)行計(jì)算。

返回類型

返回與 ?expr? 相同的數(shù)據(jù)類型值。

示例

分析函數(shù)示例

以下語句創(chuàng)建了表 employees,并向里面插入數(shù)據(jù):

CREATE TABLE employees (manager_id INT, last_name varchar(50), hiredate varchar(50), SALARY INT);
INSERT INTO employees VALUES(100, 'Wei',  '2019-09-11',17000);     
INSERT INTO employees VALUES(100, 'Red', '2019-11-05', 17000);
INSERT INTO employees VALUES(101, 'Part',  '2018-10-01',12008); 
INSERT INTO employees VALUES(102, 'Wei',  '2019-09-11',9000);     
INSERT INTO employees VALUES(103, 'Red', '2019-11-05', 6000);
INSERT INTO employees VALUES(104, 'Part',  '2018-10-01',8000); 
COMMIT;

執(zhí)行以下語句查詢 SALARY 列的最大值:

SELECT manager_id, last_name, salary FROM (SELECT manager_id, last_name, salary, 
MAX(salary) OVER (PARTITION BY manager_id) AS rmax_sal
FROM employees) WHERE salary = rmax_sal ORDER BY manager_id, last_name, salary;

查詢結(jié)果如下:

+------------+-----------+--------+
| MANAGER_ID | LAST_NAME | SALARY |
+------------+-----------+--------+
|        100 | Red       |  17000 |
|        100 | Wei       |  17000 |
|        101 | Part      |  12008 |
|        102 | Wei       |   9000 |
|        103 | Red       |   6000 |
|        104 | Part      |   8000 |
+------------+-----------+--------+

聚合函數(shù)示例

執(zhí)行以下語句查詢 SALARY 列的最大值:

SELECT MAX(salary) FROM employees;

查詢結(jié)果如下:

+-------------+
| MAX(SALARY) |
+-------------+
|       17000 |
+-------------+
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)