【问题标题】:Regroup data before sum在求和之前重新组合数据
【发布时间】:2023-02-23 20:20:32
【问题描述】:

我是 SQL 查询的初学者,但我做了这个输出以下数据的简单查询:

select ID, Lenght, Weight
from MyTable
where Group in('A1', 'A2')

我想做的是按 ID 和长度对行进行分组,然后仅对 Weight 列中的所有数据进行总和。

所以基本上我会得到:

ID Lenght Weight
1 2,635 2,2
1 2,935 43,8
2 2,305 1
2 2,935 45
3 0,281 0,1
3 0,443 0,2
3 0,604 0,3

然后返回权重列的总和。

这听起来很简单,但我无法让它发挥作用......

任何想法 ? 先感谢您

【问题讨论】:

  • 提示:GROUP BYSUM()
  • 有点难以读取输入数据,但长度 0,604 在您的描述中表示 0.604,对吗?
  • 仅供参考,是Length不是Lenght

标签: sql


【解决方案1】:

这能解决您的问题吗?

SELECT ID, Length, SUM(Weight) AS TotalWeight
FROM MyTable
WHERE Group IN ('A1', 'A2')
GROUP BY ID, Length

【讨论】:

    【解决方案2】:

    假设在您的问题描述中长度为 0,604 意味着 0.604,group by 运算符和 sum() 函数应该能够得到您想要的。

    请参阅以下代码作为示例:

    SELECT 
        ID,
        Lenght, 
        SUM(Weight) as Weight
    FROM MyTable
    WHERE GROUP IN ('A1','A2')
    GROUP BY ID, Lenght
    ORDER BY ID, Lenght
    

    VERIFIED RUNNING EXAMPLE SQLFIDDLE LINK

    ID Lenght Weight
    1 2.635 2.2
    1 2.935 43.8
    2 2.305 1
    2 2.935 45
    3 0.281 0.1
    3 0.443 0.2
    3 0.604 0.3

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多