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

MaxCompute:MAX_PT

最終更新日:Feb 21, 2025

パーティションテーブル内のデータを含む最大レベル 1 パーティションの名前を返し、このパーティションのデータを読み取ります。この関数は、パーティションをアルファベット順にソートすることで最大のパーティションを決定します。

使用上の注意

  • MAX_PT 関数が使用されている文の代わりに、標準 SQL 文を使用することもできます。たとえば、SELECT * FROM table WHERE pt = (SELECT MAX(pt) FROM table); の代わりに SELECT * FROM table WHERE pt=MAX_PT("table"); を使用できます。

    説明

    MaxCompute は MIN_PT 関数を提供していません。パーティションテーブル内でデータ量が最も少ないパーティションを取得する必要がある場合は、SQL 文 SELECT * FROM table WHERE pt=MIN_PT("table"); を使用することはできません。代わりに、標準 SQL 文 SELECT * FROM table WHERE pt= (SELECT MIN(pt) FROM table); を使用して、MAX_PT 関数と同様の効果を得ることができます。

  • テーブル内のすべてのパーティションが空の場合、MAX_PT 関数は実行に失敗します。少なくとも 1 つのパーティションが空でないことを確認する必要があります。

  • OSS 外部テーブルも MAX_PT 関数をサポートしており、その動作は内部テーブルと一致します。

構文

MAX_PT(<table_full_name>)

パラメーター

table_full_name: 必須。STRING 型の値。このパラメーターは、テーブルの名前を指定します。テーブルに対する読み取り権限が必要です。

戻り値

最大レベル 1 パーティションの名前が返されます。

説明

ALTER TABLE 文を使用してパーティションが作成され、そのパーティションにデータが含まれていない場合、このパーティションは返されません。

  • 例 1: tbl テーブルはパーティションテーブルです。テーブル内のパーティションは 20120901 と 20120902 で、どちらもデータを含んでいます。次の文を実行すると、MAX_PT 関数は '20120902' を返し、MaxCompute SQL 文は 20120902 パーティションからデータを読み取ります。サンプル文:

    SELECT * FROM tbl WHERE pt= MAX_PT('tbl');
    -- 上記の文は、次の文と同じです。
    SELECT * FROM tbl WHERE pt= (SELECT MAX(pt) FROM tbl);
  • 例 2: パーティションテーブルに複数レベルのパーティションが含まれている場合は、標準 SQL 文を使用して最大パーティションからデータを取得します。サンプル文:

    SELECT * FROM table WHERE pt1 = (SELECT MAX(pt1) FROM table) AND pt2 = (SELECT MAX(pt2) FROM table WHERE pt1= (SELECT MAX(pt1) FROM table));

関連関数

詳細については、「その他の関数」をご参照ください。