すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:MAX_PT() 関数

最終更新日:Oct 31, 2025

AnalyticDB for MySQL では、MAX_PT() 関数を使用して、パーティション化された MaxCompute 外部テーブルのレベル 1 パーティションキー列の最大値をクエリできます。これにより、すべてのパーティションのスキャンが回避され、クエリパフォーマンスと全体的なコンピューティング効率が大幅に向上します。

前提条件

使用上の注意

  • MAX_PT() 関数は、MaxCompute 外部テーブルにのみ適しています。内部テーブルまたは他のタイプの外部テーブルで MAX_PT() 関数を呼び出すと、エラーが発生します。MaxCompute 外部テーブルの作成方法の詳細については、「CREATE EXTERNAL TABLE」をご参照ください。

  • MAX_PT() 関数が使用される MaxCompute 外部テーブルは、パーティションテーブルであり、少なくとも 1 つのパーティションにデータがある必要があります。前述の要件が満たされていない場合、MAX_PT() 関数の実行に失敗します。

構文

MAX_PT(<table_full_name>)

パラメーター

<table_full_name>: パーティション化された MaxCompute 外部テーブルの名前。フォーマット: <database>.<tableName> または <tableName>。パラメーターは STRING 型である必要があります。

戻り値

レベル 1 パーティションキー列のアルファベット順で最大の価が返されます。 戻り値のデータ型は、MaxCompute 外部テーブルで定義されたパーティションキー列のデータ型によって決まります。サポートされているデータ型: BOOLEANBIGINT、および STRING

20241209、20241210、20241211 というパーティションを持つ customer という名前の外部テーブルを作成します。パーティションキー列の名前を dt に設定します。

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 MySQLMaxCompute 外部テーブルの 20241211 パーティションにのみアクセスします。 これにより、すべてのパーティションのスキャンが回避され、クエリパフォーマンスと全体的なコンピューティング効率が大幅に向上します。