SELECT table_name, MAX(partition_name) AS partition_name, CASE WHEN SUM(partition_rows) > 0 THEN 'p_max' ELSE MAX(partition_name) END AS selected_partition FROM ( SELECT table_name, partition_name, (SELECT COUNT(*) FROM information_schema.partitions p WHERE p.table_schema = t.table_schema AND p.table_name = t.table_name AND p.partition_name = pt.partition_name) AS partition_rows FROM information_schema.partitions pt JOIN information_schema.tables t ON pt.table_schema = t.table_schema AND pt.table_name = t.table_name WHERE t.table_type = 'BASE TABLE' AND pt.partition_ordinal_position = ( SELECT MAX(partition_ordinal_position) FROM information_schema.partitions WHERE table_schema = pt.table_schema AND table_name = pt.table_name ) ) AS partition_info GROUP BY table_name HAVING selected_partition IS NOT NULL;
p_max分区
最新推荐文章于 2024-08-09 21:25:57 发布