PostgreSQL中是否有内置函数来汇总从右侧开始的交替数字?
chrome.tabs.create({"url":"https://mycsuf.fullerton.edu"});
基本上我想打印每个替代号码并按上述方式总结,请为Postgres中的任何解决方案提供建议
答案 0 :(得分:3)
在Postres 9.4中,您可以使用string_to_array()
和unnest() with ordinality
使用字符串轻松完成此操作:
select ord % 2, sum(val::numeric)
from (select reverse('890400021003'::text) as x) x, lateral
unnest(string_to_array(x, NULL)) with ordinality u(val, ord)
group by ord % 2;
在9.3中,您可以使用横向连接来完成此操作:
select i % 2, sum(substring(x.x, g.i, 1)::numeric)
from (select reverse('890400021003'::text) as x) x, lateral
generate_series(1, length(x.x)) g(i)
group by i % 2;
您可以在早期版本中使用子查询来应用相同的想法。