Tous les produits
Search
Centre de documentation

MaxCompute:MAX_PT

Dernière mise à jour :Aug 10, 2026

Renvoie le nom de la partition de premier niveau la plus élevée contenant des données dans une table partitionnée, et lit les données de cette partition. Les partitions sont classées par ordre alphabétique.

Remarques d'utilisation

  • La fonction MAX_PT évalue uniquement les partitions de premier niveau. Pour les tables comportant plusieurs niveaux de partitionnement, utilisez plutôt une sous-requête SQL standard.

  • Si toutes les partitions de la table sont vides, MAX_PT renvoie une erreur. Assurez-vous qu'au moins une partition contient des données avant d'appeler cette fonction.

  • Les tables externes OSS prennent en charge MAX_PT avec le même comportement que les tables internes.

  • MaxCompute ne propose pas de fonction MIN_PT. Pour obtenir la partition la plus petite, utilisez :

    SELECT * FROM table WHERE pt = (SELECT MIN(pt) FROM table);

Syntaxe

MAX_PT(<table_full_name>)

Paramètres

Paramètre Obligatoire Type Description
table_full_name Oui STRING Nom complet de la table. Vous devez disposer des autorisations de lecture sur la table.

Valeur de retour

Le nom de la partition de premier niveau la plus élevée contenant des données.

Remarque

Les partitions créées avec ALTER TABLE qui ne contiennent aucune donnée sont exclues du résultat.

Exemples

Interroger la dernière partition

La table tbl comporte deux partitions — 20120901 et 20120902 — qui contiennent toutes deux des données.

SELECT * FROM tbl WHERE pt = MAX_PT('tbl');

Cette requête renvoie les données de la partition 20120902. L'instruction ci-dessus est équivalente à :

SELECT * FROM tbl WHERE pt = (SELECT MAX(pt) FROM tbl);

Interroger des partitions à plusieurs niveaux

La fonction MAX_PT fonctionne uniquement avec les partitions de premier niveau. Pour les tables comportant plusieurs niveaux de partitionnement, utilisez des sous-requêtes SQL standard :

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

Fonctions associées

Autres fonctions