Sql Oracle按功能分组

Sql Oracle按功能分组,sql,oracle,select,group-by,Sql,Oracle,Select,Group By,我有一个如下所示的表格,在价格\数量\成本\指标列中,有三个不同的值: 成本 价格 卷 我想表演 SELECT PRICE_VOLUME_COST_INDICATOR, SUM(AMOUNT) FROM MY_TABLE GROUP BY PRICE_VOLUME_COST_INDICATOR 但我不想把“价格”记录分组。仅就“价格”记录而言,我想要任何金额值 我期望得到以下结果: 由于根据评论,所有“价格”记录的金额都相同,因此您可以使用聚合的max(或min)只获取其中

我有一个如下所示的表格,在价格\数量\成本\指标列中,有三个不同的值:

  • 成本
  • 价格
  • 我想表演

    SELECT PRICE_VOLUME_COST_INDICATOR,
           SUM(AMOUNT) 
    FROM MY_TABLE 
    GROUP BY PRICE_VOLUME_COST_INDICATOR
    
    但我不想把“价格”记录分组。仅就“价格”记录而言,我想要任何金额值

    我期望得到以下结果:


    由于根据评论,所有“价格”记录的金额都相同,因此您可以使用聚合的
    max
    (或
    min
    )只获取其中一个,并使用
    case
    表达式在
    max
    sum
    之间进行选择,具体取决于价格、数量和成本指标:

    SELECT   price_volume_cost_indicator, 
             CASE price_volume_cost_indicator WHEN 'PRICE' THEN MAX(amount)
                                              ELSE SUM(amount)
             END
    FROM     my_table
    GROUP BY price_volume_cost_indicator
    

    根据注释,由于所有“价格”记录的金额相同,因此您可以使用聚合的
    max
    (或
    min
    )仅获取其中一个,并使用
    案例
    表达式在
    max
    总和
    之间进行选择,具体取决于价格、数量和成本指标:

    SELECT   price_volume_cost_indicator, 
             CASE price_volume_cost_indicator WHEN 'PRICE' THEN MAX(amount)
                                              ELSE SUM(amount)
             END
    FROM     my_table
    GROUP BY price_volume_cost_indicator
    

    你能澄清这个输出吗?您是否只返回一个“价格”记录,因为两者的金额相同,为36.15?对于所有“价格”记录,金额将相同。我想返回一条记录,请阅读并接受回答Sure@a_horse_,并带有_no_名称,我将在下次发布问题时记住这一点。您能澄清此输出吗?您是否只返回一个“价格”记录,因为两者的金额相同,为36.15?对于所有“价格”记录,金额将相同。我想返回一张记录,请阅读并接受回答Sure@a_horse_,没有名字,下次发帖时我会记住这一点。