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_PTrenvoie 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_PTavec 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.
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));