gpt4 book ai didi

postgresql - 获取架构中所有表中相同字段的最大值

转载 作者:行者123 更新时间:2023-11-29 12:10:09 25 4
gpt4 key购买 nike

我在一个模式中有 10 个表,它们都有一个“measurementdatetime”字段。我正在尝试编写一个脚本,该脚本将为每个表返回一行,显示每个表的表名和最大测量日期时间。

我想它应该像这样编码,但我想不出确切的语法

    SELECT table_name AS table_full_name,
MAX ( table_name || '.measurementdatetime' ) AS max_timestamp
FROM information_schema.tables
WHERE table_schema = 'temp_work_w_roof'
GROUP BY tables.table_name
ORDER BY pg_total_relation_size('"' || table_name || '"') DESC

我收到“错误关系 my_tablename1 不存在”

(另外:是否可以将其编译为 View ?如果可以,如果它们是动态的,如何对 View 的前面“字段名”进行编码?)

最佳答案

您必须使用 plpgsql language dynamic command ,例如:

create or replace function get_max_measurementdatetime()
returns table (table_name text, max_value timestamp)
language plpgsql as $$
declare
r record;
begin
for r in
select i.table_name, i.table_schema
from information_schema.tables i
where table_schema = 'temp_work_w_roof'
and table_type = 'BASE TABLE'
loop
execute format (
'select max(measurementdatetime) from %I.%I',
r.table_schema, r.table_name)
into max_value;
table_name := r.table_name;
return next;
end loop;
end $$;

select *
from get_max_measurementdatetime();

关于postgresql - 获取架构中所有表中相同字段的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40608445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com