【发布时间】:2018-09-11 19:43:19
【问题描述】:
我有以下数据,我需要使用 T-SQL 查询根据组 id 计算 LCM(最低计算乘法)值。我们将不胜感激。
Groupid GroupValue
------------------
1 2
1 4
1 6
2 5
2 5
2 10
3 3
3 12
3 6
3 9
预期结果如下。
Groupid GroupLCM
------------------
1 12
2 10
3 36
【问题讨论】:
-
SQL 不是一种很好的语言,无法在数学上将数字分解为素数。
-
在纯 T-SQL 中可行,但既不明显也不高效。如果您需要将其作为“真实”数据库的一部分(不是玩具练习),我可能会将其设为 CLR 自定义聚合;
lcm(a,b) = a / gcd(a,b) * b和gcd是书中最古老的算法。 (字面意思。)
标签: sql-server sql-server-2008 sql-server-2012