All Products
Search
Document Center

MaxCompute:MAX_PT

Last Updated:Jul 11, 2023

Returns the name of the largest level-1 partition that contains data in a partitioned table and reads the data of this partition. This function determines the largest partition by sorting partitions in alphabetical order.

Usage notes

You can also use a standard SQL statement instead of the statement in which the MAX_PT function is used. For example, you can use select * from table where pt = (select max(pt) from table); instead of select * from table where pt = max_pt("table");.

Note

MaxCompute does not provide the MIN_PT function. If you need to obtain the smallest partition that contains data in a partitioned table, you cannot use the SQL statement select * from table where pt = min_pt("table");. Instead, you can use the standard SQL statement select * from table where pt = (select min(pt) from table); to achieve the same effect as the MAX_PT function.

Syntax

max_pt(<table_full_name>)

Parameters

table_full_name: required. A value of the STRING type. This parameter specifies the name of the table. You must have read permissions on the table.

Return value

The name of the largest level-1 partition is returned.

Note

If a partition is added by using the ALTER TABLE statement and the partition contains no data, the name of this partition is not returned.

Examples

  • Example 1: The tbl table is a partitioned table. The partitions in the table are 20120901 and 20120902, both of which contain data. If you execute the following statement, the MAX_PT function returns '20120902', and the MaxCompute SQL statement reads data from the 20120902 partition. Sample statement:

    select * from tbl where pt=max_pt('myproject.tbl');
    -- The preceding statement is equivalent to the following statement: 
    select * from tbl where pt = (select max(pt) from myproject.tbl);
  • Example 2: If a partitioned table contains multiple levels of partitions, use the standard SQL statement to obtain data from the largest partition. Sample statement:

    select * from table where pt1 = (select max(pt1) from table) and pt2 = (select max(pt2) from table where pt1 = (select max(pt1) from table));

Related functions

For more information, see Other functions.