首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Postgresql数据库中分母最小公倍数的计算

Postgresql数据库中分母最小公倍数的计算
EN

Stack Overflow用户
提问于 2020-11-23 08:04:05
回答 1查看 267关注 0票数 1

我想创建一个表格来更好地说明我的问题。

这是postgresql数据库中我的数据示例

我想要做的工作一步一步地进行,如下所示

1-将分母列中的值按group_id列分组,并计算最小公共倍数。为此,我创建了lcm (最小公共倍数)和gcd (最大公共除数)函数。在这里加的。

代码语言:javascript
运行
AI代码解释
复制
CREATE OR REPLACE FUNCTION gcd(bigint, bigint) RETURNS bigint AS
$BODY$
 WITH RECURSIVE t(a, b) AS (
    VALUES (abs($1) :: bigint, abs($2) :: bigint)
UNION ALL
    SELECT b, mod(a,b) FROM t
    WHERE b > 0
)
SELECT a AS gcd FROM t WHERE b = 0;
$BODY$
IMMUTABLE
STRICT
LANGUAGE SQL;

CREATE OR REPLACE FUNCTION lcm(bigint, bigint)
  RETURNS bigint AS
$BODY$
  SELECT $1 / gcd($1, $2) * $2;
$BODY$
IMMUTABLE
STRICT
LANGUAGE SQL;

2-按比例增加分子值与分母列的值。这样的数学公式:

代码语言:javascript
运行
AI代码解释
复制
(lcm(values of denominator(1..to -n)) / values of denominator ) * values of the numerator

3-通过按group_id值对新的计算值进行分组来求和新的计算值。

所有的项目,如sql,函数,视图将使这项工作完成,是适合我。

我能为这个做些什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-14 22:18:55

我用了这样的方法来解决这个问题。这可能不是最好的解决办法,但它满足了我的需要。

代码语言:javascript
运行
AI代码解释
复制
DO
$do$
DECLARE
   arr int[] := '{5,7,11,798,4212}';
   i int :=1;
   res int ;
begin 
    res = lcm(arr[i],arr[i+1]);
    RAISE NOTICE '%',res;
   FOR i IN array_lower(arr,1)  .. array_upper(arr, 1)-2
   LOOP    
      i:=i+1;
      res := lcm(res,arr[i+1]);      
    RAISE NOTICE 'lcm(%,%)',res, arr[i+1];
    RAISE NOTICE '%',res;
   END LOOP;
END
$do$
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64971917

复制
相关文章
无法在此iPhone上激活Touch ID,怎么解决?
Touch ID是苹果公司的指纹识别功能,允许用户解锁iPhone或iPad、在苹果商店购物,以及在应用程序中验证Apple Pay等等。
莉莉的碎碎念
2021/09/10
6.1K0
无法在此iPhone上激活Touch ID,怎么解决?
适当愉悦,自建 Minecraft 服务器
本文主要介绍自建 Minecraft 服务器的方法,可以使用提供的公有云服务,Minecraft 对虚拟机配置需求如下:
宋天伦
2020/07/16
7.1K1
适当愉悦,自建 Minecraft 服务器
Python 数组操作_python中数组的表示形式
在python中本身有着列表等数据结构,但是列表只是一种数据的存储容器,不具备任何计算能力。
全栈程序员站长
2022/09/22
3K0
Python 数组操作_python中数组的表示形式
【平面解析几何】直线方程的表示形式
表示与 轴、 轴相交,且与 轴截距为 、与 轴截距为 的直线
攻城狮杰森
2022/06/03
1.8K0
springboot的资源请求验证
基于SpringBoot的资源请求验证(Aspectj和Interceptor两方式实现)附JWT验证token 前言 ​ 在项目中,我们需要对前端请求的资源进行验证,判断是否具有相应的权限。比如某写资源只有在登录之后才有请求权限。本章以请求之前是否登录为权限。
崔笑颜
2020/06/08
8570
VS2010 \...\bin\rcdll.dll 无法找到资源编译器
版权声明:本文为博主原创文章,未经博主允许不得
acoolgiser
2019/01/16
1.3K0
用文字云的形式表示什么款式最畅销
前一文我们讲述了两种在Power BI中展示Top款的方式,我们有时候其实不需要具体的数字,只需直观感受,例如如下这种:
wujunmin
2021/09/07
8810
用文字云的形式表示什么款式最畅销
图解计算机中数据的表示形式
作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:
冰河
2021/02/05
3K0
图解计算机中数据的表示形式
VirtualBox克隆后无法找到网卡的问题
Virtualbox现在更新到了4.1.6版本,我记得在之前的版本中,镜像的克隆只能通过命令行的方式来进行,现在已经可以通过界面来进行克隆了,可以说非常的方便。
大江小浪
2018/07/25
1.3K0
VirtualBox克隆后无法找到网卡的问题
skywalking根据文本信息找到对应的请求
在定位问题的时候,有时候需要找到导致问题出现的那个请求,比如下单。但是只有订单号,怎么去找呢? 目前我们一般是根据下单时间,然后再根据时间去找对应的请求,但是请求很多,需要一个一个打开请求内容去定位该订单的下单请求。 本文使用脚本的方式方便快速定位到对应的请求 根据时间和接口名称获取批量请求 获取批量请求 curl 'http://sky.fy.qq.com/graphql' \ -H 'Content-Type: application/json;charset=UTF-8' \ --dat
十毛
2021/11/24
6070
VSCode 无法加载文件 ······,因为在此系统上禁止运行脚本
 原因:命令行执行策略,默认设置为Restricted不加载配置文件或运行脚本。需变更设置为RemoteSigned
超级小的大杯柠檬水
2023/05/06
1.4K0
VSCode 无法加载文件 ······,因为在此系统上禁止运行脚本
C++核心准则E.19:如果无法选择适当的资源句柄,使用final_action表现清除处理​
finally is less verbose and harder to get wrong than try/catch.
面向对象思考
2020/08/10
5570
解决 cnpm : 无法加载文件 因为在此系统上禁止运行脚本
执行命令行set-ExecutionPolicy RemoteSigned 选y 即可
kirin
2021/02/26
7.1K0
解决 cnpm : 无法加载文件 因为在此系统上禁止运行脚本
如何找到自己的服务器
4.点击自己云服务器的实例id后,就可以看见服务器的基本信息、弹性网卡、安全组等等。
逸轩
2021/09/16
6.9K0
无法转换为内部表示
系统查询表记录时出现“java.sql.SQLException: 无法转换为内部表示”异常,抛出的异常信息如下:
程序新视界
2022/11/30
7040
修复WebView资源未找到导致的崩溃问题
近期 应用新增了很多的崩溃,分析特征,发现崩溃集中在5.0-5.1.1系统上,崩溃的日志如下
技术小黑屋
2020/11/10
2.5K0
linux上找到可用的网络接口
在 Linux 中查找可用的网络接口 我们可以通过几种方式找到可用的网卡。在本指南中,我们将讨论列出 Linux 中网络接口卡的 10 种方法。 1. 使用 ifconfig 命令列出网络接口 使用ifconfig命令查找网络接口详细信息的最常用方法。我相信一些 Linux 用户可能仍在使用它。 $ ifconfig -a enp5s0: flags=4098<BROADCAST,MULTICAST> mtu 1500 ether 24:b6:fd:37:8b:29 txqueuelen 1000 (Eth
入门笔记
2022/06/02
2.4K0
无法为 WSDD 操作找到匹配的 Java 操作
我发现了错误。 只需要把“AndrQues”改成“andrQues”,程序就可以正常运行了。
matinal
2023/10/13
1960
Ajax请求($.ajax())中data属性传参数的形式
实现Ajax提交数据进行请求,其中data属性设置传参的方法有好几种形式,如下: //第一种写法(把参数拼接在URL中,data属性设为空{ })
PM吃瓜
2019/08/12
3.9K0
点击加载更多

相似问题

而网络报废这个错误显示是不可接受的!无法在此服务器上找到所请求资源的适当表示形式。

19

无法接受在此服务器上找不到所请求资源的适当表示形式。此错误是由Mod_Security生成的

116

在此服务器上找不到所请求资源的适当表示形式。此错误是由Mod_Security生成的。

33

Django -未找到在此服务器上找不到请求的资源

146

获取此错误:源服务器未找到目标资源的当前表示形式,或不愿透露存在此表示形式。

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档