Mengembalikan nama partisi level-1 terbesar yang berisi data dalam tabel terpartisi serta membaca data dari partisi tersebut. Fungsi ini menentukan partisi terbesar dengan mengurutkan partisi secara alfabetis.
Catatan penggunaan
Anda dapat menggunakan pernyataan SQL standar sebagai pengganti pernyataan yang memanfaatkan fungsi
MAX_PT. Sebagai contoh, gunakanSELECT * FROM table WHERE pt=MAX_PT("table");sebagai alternatif untukSELECT * FROM table WHERE pt = (SELECT MAX(pt) FROM table);.CatatanMaxCompute tidak menyediakan fungsi
MIN_PT. Untuk mendapatkan partisi dengan jumlah data paling sedikit dalam tabel terpartisi, Anda tidak dapat menggunakan pernyataan SQLSELECT * FROM table WHERE pt=MIN_PT("table");. Sebagai gantinya, gunakan pernyataan SQL standarSELECT * FROM table WHERE pt= (SELECT MIN(pt) FROM table);untuk mencapai efek serupa seperti fungsiMAX_PT.Jika semua partisi dalam tabel kosong, fungsi
MAX_PTgagal dieksekusi. Pastikan setidaknya satu partisi tidak kosong.Tabel eksternal OSS juga mendukung fungsi
MAX_PT, dengan perilaku yang konsisten dengan tabel internal.
Sintaks
MAX_PT(<table_full_name>)Parameter
table_full_name: Wajib. Nilai bertipe STRING. Parameter ini menentukan nama tabel. Anda harus memiliki izin baca pada tabel tersebut.
Nilai kembali
Nama partisi level-1 terbesar dikembalikan.
Jika sebuah partisi dibuat menggunakan pernyataan ALTER TABLE dan partisi tersebut tidak berisi data, partisi ini tidak akan dikembalikan.
Contoh
Contoh 1: Tabel tbl adalah tabel terpartisi. Partisi dalam tabel adalah 20120901 dan 20120902, keduanya berisi data. Jika Anda mengeksekusi pernyataan berikut, fungsi
MAX_PTmengembalikan'20120902', dan pernyataan SQL MaxCompute membaca data dari partisi20120902. Contoh pernyataan:SELECT * FROM tbl WHERE pt= MAX_PT('tbl'); -- Pernyataan di atas setara dengan pernyataan berikut: SELECT * FROM tbl WHERE pt= (SELECT MAX(pt) FROM tbl);Contoh 2: Jika tabel terpartisi berisi beberapa tingkat partisi, gunakan pernyataan SQL standar untuk mendapatkan data dari partisi terbesar. Contoh pernyataan:
SELECT * FROM table WHERE pt1 = (SELECT MAX(pt1) FROM table) AND pt2 = (SELECT MAX(pt2) FROM table WHERE pt1= (SELECT MAX(pt1) FROM table));
Fungsi terkait
Untuk informasi lebih lanjut, lihat Fungsi Lainnya.