Sql 对子类别的记录求和,并将总和返回到主类别

Sql 对子类别的记录求和,并将总和返回到主类别,sql,amazon-redshift,Sql,Amazon Redshift,我有这种情况。我有两张桌子: 表1包括类别、子类别 表2包括子类别、值 子类别是唯一标识符,并连接两个表 我试图做的是将所有子类别的值相加到该类别中 也就是说: Category=A Sum=55 *Sum is 55 because I added all subcategories. (43+10+2) 我不希望每个类别有超过一行 我想根据值的总和找到20个最佳类别(而不是子类别) 但是,我需要在我的新表中包含子类别,因为我最终要将这个新表(子查询)连接到

我有这种情况。我有两张桌子:

  • 表1包括类别、子类别
  • 表2包括子类别、值
  • 子类别是唯一标识符,并连接两个表
我试图做的是将所有子类别的值相加到该类别中

也就是说:

Category=A              Sum=55

*Sum is 55 because I added all subcategories. (43+10+2)
  • 我不希望每个类别有超过一行
  • 我想根据值的总和找到20个最佳类别(而不是子类别)
  • 但是,我需要在我的新表中包含子类别,因为我最终要将这个新表(子查询)连接到一个更大的表,这是通过子类别进行连接的唯一方法
问题是,如果我将子类别包括到新表中,然后限制为20,那么我将没有前20个类别,而是前20个子类别。有什么想法吗?

选择
c、 类别,
总和(sb子类别值)
从…起
c类
在c.subid=sb.subid上联接子类别sb
c类分组;

我忘了提到:带值的子类别在一个表中,子类别和类别在另一个表中。这两个表在子类别上连接在这两个表中,然后应用上面相同的group By,这是适当的,以显示您尝试了什么以及为什么结果不是您想要的。您可能希望使用
分组依据
进行聚合。
Category=A              Sum=55

*Sum is 55 because I added all subcategories. (43+10+2)