gpt4 book ai didi

sql - 如何匹配sql中的值?

转载 作者:行者123 更新时间:2023-12-01 00:56:53 25 4
gpt4 key购买 nike

我的表中有 4 列..

digit1 digit2 digit3 amount
1 2 3 1
2 2 2 1
2 1 3 1
3 2 1 1

如果行具有相同的数字值,我想将它们分组。输出将是这样的:

digit1 digit2 digit3 amount
1 2 3 3
2 2 2 1

虽然这个菜鸟问题很抱歉..我从昨晚开始就被这个问题困住了..提前打通电话

最佳答案

解决方法

如果所有数字都具有相同的一组数字 (2,1,3) ,(3,2,1),...等,这意味着它们具有相同的阶乘

例子:2*1*3=3*2*1 ...等等

注意:此解决方案适用于任何非零数字(阶乘规则)

求解步骤

  1. 对每一行进行乘法和求和
  2. 根据乘法和求和进行划分并命名为[part]
  3. 取只出现一次的记录=> [part]=1
  4. 统计记录

这里是解决方案

with fact
as(
select Id,digit1,digit2,digit3,digit1*digit2*digit3 as [mult],digit1+digit2+digit3 as [sum]
from Data),part as(
select Id,digit1,digit2,digit3,[mult],[sum],row_number() over(partition by [mult],[sum] order by [mult],[sum]) as [Part]
from fact
)
select Id,digit1,digit2,digit3,(select count(*)
from fact f where f.[mult]=p.[mult] and f.[sum]=p.[sum]) as amount
from part p
where part=1

这里是一个正确的结果 DEMO

希望对你有帮助

关于sql - 如何匹配sql中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27074775/

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