全部產品
Search
文件中心

AnalyticDB:MAX_PT函數

更新時間:Aug 09, 2025

AnalyticDB for MySQL支援使用MAX_PT函數查詢MaxCompute分區外表中一級分區的最大值,避免掃描所有分區,顯著提升查詢處理速度及整體計算效率。

前提條件

注意事項

  • MAX_PT函數僅適用於MaxCompute外表。內表或其他類型的外表,使用MAX_PT函數查詢時會報錯。建立MaxCompute外表,具體方法請參見CREATE EXTERNAL TABLE

  • MaxCompute外表必須為分區表,且至少有一個分區資料不為空白,否則MAX_PT函數將執行失敗。

文法

MAX_PT(<table_full_name>)

參數說明:

<table_full_name>MaxCompute分區外表的表名。格式可以為<database>.<tableName><tableName>。僅支援STRING資料類型。

傳回值說明:

返回一級分區的最大值(按字母順序排序)。傳回值類型取決於MaxCompute外表中定義的分區列類型,支援BOOLEANBIGINTSTRING資料類型。

樣本

假設customer外表的結構如下,dt列為分區列,該表包含20241209、20241210、20241211三個分區。

CREATE EXTERNAL TABLE IF NOT EXISTS  customer (
	id int,
	name varchar(1023),
	age int,
	dt STRING
) ENGINE='ODPS'
TABLE_PROPERTIES='{
	"accessid":"LTAILd4****",
	"endpoint":"http://service.cn-hangzhou.maxcompute.aliyun.com/api",
	"accesskey":"4A5Q7ZVzcYnWMQPysX****",
	"partition_column":"dt",
	"project_name":"test_adb",
	"table_name":"person"
}';

查詢customer外表中最大分區的記錄數。

SELECE COUNT(*) FROM customer WHERE dt=MAX_PT('customer');

AnalyticDB for MySQL在查詢MaxCompute外表時,僅需訪問20241211的分區這種方法避免了全面掃描所有分區,顯著提高了查詢處理的速度和整體計算效率。